質問編集履歴

1

疑問の詳細を修正した

2022/01/04 07:49

投稿

standard-soft
standard-soft

スコア197

test CHANGED
@@ -1 +1 @@
1
- PowerShell で ls に grep をかけようとして結果がファイル内を検索してしまう
1
+ PowerShell で ls の結果に grep をかけようとして select-string を記載するとファイル内を検索してしまうのはなぜですか?
test CHANGED
@@ -1,4 +1,8 @@
1
- タイトルの通り
1
+ 概要はタイトルの通りとなりま
2
+
3
+
4
+
5
+ 詳細を書きます。
2
6
 
3
7
 
4
8
 
@@ -6,7 +10,7 @@
6
10
 
7
11
  > ls
8
12
 
9
- の結果のテキストをフィルタしようとして
13
+ の結果のテキストをフィルタしようとして次のように記載しました。
10
14
 
11
15
 
12
16
 
@@ -14,15 +18,39 @@
14
18
 
15
19
 
16
20
 
17
- などとしても
21
+ .jsonは例です。
18
22
 
19
23
 
20
24
 
21
- ォルダ内ファイルの中身に対する .json という文字列含む行が出力されてしまます。
25
+ このように書いて動かすと、ls の結果に対してではなく、lsでリストしたファイルの中身に対して、 .json という文字列含む行が出力されてしまう様子に見えます。
22
26
 
23
27
 
24
28
 
29
+ なぜこのようになるのでしょうか?
30
+
31
+
32
+
33
+ Zuishinさんからコメントいただき、
34
+
35
+
36
+
25
- 単にlsの結果の中から .json ファイルのリストだけを取得したい場合にはどのようにするとよいのでしょうか?
37
+ > 単にlsの結果の中から .json ファイルのリストだけを取得したい場合にはどのようにするとよいのでしょうか?
38
+
39
+
40
+
41
+ という疑問に対しては、
42
+
43
+
44
+
45
+ > ls *.json
46
+
47
+
48
+
49
+ でいいと教えていだきましたので、結果は得ることができたのですが、仕組みとして、ls の出力結果のテキストに対してのgrep(フィルタ)ではなく、lsでリストされたファイルの中身に対する grep(フィルタ) になっている仕組みも知っておきたいです。
50
+
51
+
52
+
53
+ たとえば、lsで出力される内容に対して、特定日付のファイルだけをgrepするなどが、select-stringで出来る方法がしりたかったり、あるいは、なぜ、select-stringがうまくいくコマンドとうまくいかないlsのようなコマンドがあるのか、ということについてお詳しい方おられましたら、教えてください。
26
54
 
27
55
 
28
56