grepが行全体を印刷しないのはなぜですか? [コピー]

grepが行全体を印刷しないのはなぜですか? [コピー]

lsコマンドを入力すると、次のような出力が表示されます。

-$ ls
aNode  ANode  bNode  BNode  cNode  CNode  DUMP  file1  hello.txt  TEST.txt
-$

示されているように、上記の出力は別々の行oneに表示されます。filenamesspaces

次に、一致するものを見つけるために使用しますgrep

一致するものが見つかると、行全体が印刷されると予想されます。

ただし、代わりにgrepは一致を含む行全体ではなく一致のみを印刷します。下記をご覧ください。

-$ ls | grep 'aNode'
aNode
-$

なぜこれが起こるのですか?grep 行全体が印刷されないのはなぜですか?

ベストアンサー1

lsパイプの代わりに端末に書き込むと、出力形式が異なり、内容が異なるように表示されます。パイプに書き込むと、1行に1つのエントリしか書き込まれないため、grep各リストを個別に処理できます。

したがって、これはgrep単に実行して画面に印刷したときとは異なる出力を取得します。lsls

grepこれにより、同じ効果を見ることができます

ls | cat

これにより、すべての項目が1行に1つずつ表示されます。

おすすめ記事