| [[Programming C]] | [[Linux]] | [[Cygwin]] | [[Linux コマンド]] |
==[[シェルプログラミング]]==
[[Programming C]] | [[Linux]] | [[Cygwin]] |
これらの本からの覚書。
*ツールをどんどん作る
==基本=====[[シェルプログラミング 基本|基本]]===*[[シェルプログラミング 基本|基本]]
====リダイレクトとパイプ====
* < を使って標準入力を変更する
* > を使って標準出力を変更する
* | を使ってパイプラインを作る
===特殊ファイル=======/dev/null====*ビットバケツ(bit bucket) と呼ばれる*このファイルに送られるデータは全て削除される*データを読み込むと、常にファイル終端文字が返される ====/dev/tty====*プログラムが実行された端末にリダイレクトされる*パスワードなど必ず手入力して欲しい場合などに便利===文字列の検索と置換===*当初から存在していた、grep(POSIXのBRE:Basic Regular Expressionsに対応)、拡張された、egrep(ERE:Extended Regular Expressionsに対応)、正規表現に対応しない代わりに、高速な固定検索をおこなう、fgrepが、歴史的な経緯で存在しているが、1992年のPOSIX標準で、grepに統合され、オプションで切り替えられるようになった(現実的には削除されずに残っている)====[[正規表現]]==== ==[[シェルプログラミング 変数|変数]]===
*[[シェルプログラミング 変数|変数]]
===[[シェルプログラミング 条件|条件]]===
*[[シェルプログラミング 条件|条件]]
===[[シェルプログラミング 制御|制御]]===
*[[シェルプログラミング 制御|制御]]
===[[シェルプログラミング リスト|リスト]]===
*[[シェルプログラミング リスト|リスト]]
===[[シェルプログラミング 関数|関数]]===
*[[シェルプログラミング 関数|関数]]
===[[シェルプログラミング コマンド|コマンド]]===
*[[シェルプログラミング コマンド|コマンド]]
==[[Tips]]==
===grepで対象のファイル数が多く argument list too longとなる場合===
*NG
<pre>
$ grep "hoge" *
-bash: /usr/bin/grep: Argument list too long
</pre>
*書き換え
<pre>
$ echo * | xargs grep "hoge"
</pre>
===複数ファイルを処理===
*ディレクトリのファイルをまとめて解凍