質問編集履歴
1
疑問の詳細を修正した
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
PowerShell で ls に grep をかけようとして
|
1
|
+
PowerShell で ls の結果に grep をかけようとして select-string を記載するとファイル内を検索してしまうのはなぜですか?
|
body
CHANGED
@@ -1,15 +1,29 @@
|
|
1
|
-
タイトルの通り
|
1
|
+
概要はタイトルの通りとなります。
|
2
2
|
|
3
|
+
詳細を書きます。
|
4
|
+
|
3
5
|
Windows PowerShell で
|
4
6
|
> ls
|
5
|
-
の結果のテキストをフィルタしようとして
|
7
|
+
の結果のテキストをフィルタしようとして次のように記載しました。
|
6
8
|
|
7
9
|
> ls | select-string .json
|
8
10
|
|
9
|
-
|
11
|
+
.jsonは例です。
|
10
12
|
|
11
|
-
フ
|
13
|
+
このように書いて動かすと、ls の結果に対してではなく、lsでリストしたファイルの中身に対して、 .json という文字列を含む行が出力されてしまう様子に見えます。
|
12
14
|
|
13
|
-
|
15
|
+
なぜこのようになるのでしょうか?
|
14
16
|
|
17
|
+
Zuishinさんからコメントいただき、
|
18
|
+
|
19
|
+
> 単にlsの結果の中から .json ファイルのリストだけを取得したい場合にはどのようにするとよいのでしょうか?
|
20
|
+
|
21
|
+
という疑問に対しては、
|
22
|
+
|
23
|
+
> ls *.json
|
24
|
+
|
25
|
+
でいいと教えていだきましたので、結果は得ることができたのですが、仕組みとして、ls の出力結果のテキストに対してのgrep(フィルタ)ではなく、lsでリストされたファイルの中身に対する grep(フィルタ) になっている仕組みも知っておきたいです。
|
26
|
+
|
27
|
+
たとえば、lsで出力される内容に対して、特定日付のファイルだけをgrepするなどが、select-stringで出来る方法がしりたかったり、あるいは、なぜ、select-stringがうまくいくコマンドとうまくいかないlsのようなコマンドがあるのか、ということについてお詳しい方おられましたら、教えてください。
|
28
|
+
|
15
29
|
よろしくお願いします。
|