概要はタイトルの通りとなります。
詳細を書きます。
Windows PowerShell で
ls
の結果のテキストをフィルタしようとして次のように記載しました。
ls | select-string .json
.jsonは例です。
このように書いて動かすと、ls の結果に対してではなく、lsでリストしたファイルの中身に対して、 .json という文字列を含む行が出力されてしまう様子に見えます。
なぜこのようになるのでしょうか?
Zuishinさんからコメントいただき、
単にlsの結果の中から .json ファイルのリストだけを取得したい場合にはどのようにするとよいのでしょうか?
という疑問に対しては、
ls *.json
でいいと教えていだきましたので、結果は得ることができたのですが、仕組みとして、ls の出力結果のテキストに対してのgrep(フィルタ)ではなく、lsでリストされたファイルの中身に対する grep(フィルタ) になっている仕組みも知っておきたいです。
たとえば、lsで出力される内容に対して、特定日付のファイルだけをgrepするなどが、select-stringで出来る方法がしりたかったり、あるいは、なぜ、select-stringがうまくいくコマンドとうまくいかないlsのようなコマンドがあるのか、ということについてお詳しい方おられましたら、教えてください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー