両方のファイルのコンテンツリダイレクト[重複]

両方のファイルのコンテンツリダイレクト[重複]

両方のファイルの内容をooo.txt

grepまた、2番目のファイルの一部の特定の行(この場合は最初の5行と最後の25行)のみを使用したいと思います。「笑」) 括弧なし

これは私が使用するコマンドです:

cat [file1] &&  cat [file2] | grep  "lol" -B 5 -A 25 > ooo.txt

file 2残念ながら、ファイルには内容のみが記録されますooo.txt(ただし、grepコマンドは順守されます)。

この問題をどのように解決できますか?

ベストアンサー1

これらのコマンドは設計どおりに正しく機能します。

最初:

cat [file1]

出力をfile1に送信しますstdout

次:

&&

前のコンテンツが実行した終了状態の場合は、次のコンテンツを実行するように指示します0

ついに、

cat [file2] | grep  "lol" -B 5 -A 25 > ooo.txt

out as to を使用してstdout、その出力を ooo.txt ファイルにリダイレクトするために使用します。cat [file2]stdingrep "lol" -B 5 -A 25> ooo.txt

欲しいものを得るためのいくつかの方法は次のとおりです。

最初のコマンドは最初のcatコマンドにリダイレクトを追加し、そこから始まります。ファイルが存在しないか空であるとします。

cat [file1] > ooo.txt &&  cat [file2] | grep  "lol" -B 5 -A 25 >> ooo.txt

ファイルがすでに存在し、空でない場合は、次のものを追加するだけです。

cat [file1] >> ooo.txt &&  cat [file2] | grep  "lol" -B 5 -A 25 >> ooo.txt

あまり複雑でないコマンドも機能します。

{ cat [file1]; cat [file2] | grep  "lol" -B 5 -A 25; } > ooo.txt

;2つのコマンドcatの間とgrep後の中括弧は、すべてのコマンドの出力をファイルにリダイレクトしますooo.txt。コンテンツがファイルにのみ追加される場合は、代わり>>に使用してください。>

おすすめ記事