ファイルから単語をインポートして他の既存のファイルに保存する方法は?
私が試したことは
cat q1.txt | grep -i "osx" test.txt
test.txtでgrepしてq1に保存したいのですが、この方法と異なる方法は機能しません。
ベストアンサー1
これを完全に削除してからcat
、出力をgrep
結果ファイルにリダイレクトする必要があります。
grep -i "osx" test.txt >q1.txt
test.txt
その後、文字列を含む行を検索しosx
(大文字と小文字を区別しない)、その行をq1.txt
。ファイルがq1.txt
存在する場合、出力が保存される前に切り捨てられます(空になります)。
出力をファイルの末尾に追加するには、>>
代わりに>
リダイレクト演算子として使用します。
あなたの命令:
cat q1.txt | grep -i "osx" test.txt
これが実際に行うことは実行cat
とgrep
並行性です。標準入力に接続されている標準出力をcat
読み書きしようとします。q1.txt
grep
grep
ただし、読み取るファイルを提供すると、ファイルcat
に転送されたすべての内容は完全に無視されます。
最後に、test.txt
この文字列を含むすべての行がosx
端末に出力されます。
cat
一般に、「使用されない使用」(または時々「UUoC」)と呼ばれるものがあります。これは、cat
呼び出しが完全に削除され、ファイルを他のツールから直接読み取ることができることを意味します。
極端な例は次のとおりです。
cat test.txt | cat | cat | cat | grep -i "osx" | cat | cat >q1.txt
でもそれだけだとしても
cat test.txt | grep -i "osx" >q1.txt
grep
上記のようにファイルを完全に完全に読み取ることができるため、役に立ちません。たとえそれでもいいえtest.txt
自分で開いて書ける
grep -i "osx" <test.txt >q1.txt
標準入力はファイルから出なければならず、標準出力はファイルにtest.txt
行くべきです。q1.txt
データをリンクする場合にのみ使用されますcat
(主目的)。他の用途もありますが、cat
この質問の範囲外です。
関連: