ファイルから単語をインポートして他の既存のファイルに保存する方法は?

ファイルから単語をインポートして他の既存のファイルに保存する方法は?

ファイルから単語をインポートして他の既存のファイルに保存する方法は?

私が試したことは

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

これが実際に行うことは実行catgrep並行性です。標準入力に接続されている標準出力をcat読み書きしようとします。q1.txtgrep

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この質問の範囲外です。


関連:

おすすめ記事