はい、これがLinuxの理念「より大きなプロセスを作るための多くの小さなツール」の核心です。
Linuxはコマンドラインパイプと呼ばれるものを使用しています。
それらを使用するには、単純に縦棒文字を使用して2つのコマンドを結合します。
|
ですから、あなたの場合、catコマンドの出力をsedコマンドに送りたいと言ったとします。
cat somefile | sed -n "/START-WORD-HERE/,/END-WORD-HERE/p"
この場合、コマンドの後にファイル名を指定しないように注意してください。
すべてのLinuxコマンドの99%はパイプを使って操作することを可能にしますが、それらのうちのいくつかについてはmanページを必ず読むようにしてください。を使用する
-
(マイナス文字)
ファイル名の代わりに。
また、ほとんどの場合、パイプは線形であり、一方の端の出力がもう一方の端の入力を形成し、チェーンに沿って実行される変換をすべて保持します。
これは、例えば
cat somefile | grep someword | sed -n "/START-WORD-HERE/,/END-WORD-HERE/p"
sedへの入力は、grepがcatからの入力に対して実行した操作からの出力になります。
正しいことがわかって、一度に1つずつステップを進めていくことを恐れないようにするまで、最初にファイルのコピーをテスト/実験することをお勧めします。
得る
cat blah | grep bleah
sedビットを追加する前に、少し正しいです。それから、awk / wc /その他のビットを追加する直前にsedビットを取得してください。一度に1ステップずつ出力を見ると、パイプをデバッグして検証することができます。
非常に多くの異なる仕事をする多くのコマンドがあります、そしてそれはLinuxのコマンドラインツールマニュアルのページを通して読むことを夕方過ごすのにすばらしい言い訳です。ファイルから列を切り出したり、単語文書をテキストに変換したり、行数を数えたりするためのツールがあります。
それで、あなたがそれに飽きたら、ここに私がずっと前にPHP Builderのために書いた記事へのリンクがあります。そして、あなた自身のパイププロセッサをPHPで書く方法をあなたに示します。
http://www.phpbuilder.com/columns/peter_shaw20090211.php3
何よりも楽しいのは、非常に少数のツールを使って素晴らしいことをいくつかできることです。