両方のファイルの内容を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]
stdin
grep "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
。コンテンツがファイルにのみ追加される場合は、代わり>>
に使用してください。>