回答編集履歴

1

1

2016/08/29 10:29

投稿

takasima20
takasima20

スコア7460

test CHANGED
@@ -29,3 +29,55 @@
29
29
  done
30
30
 
31
31
  ```
32
+
33
+ --- 追加 ---
34
+
35
+
36
+
37
+ // なんかマイナスになってるんですけど、うまく意図が伝わらなかったのかなあ
38
+
39
+ // ってことで、(解決済になったので)補足を…
40
+
41
+
42
+
43
+ まず find コマンドに関しては、"-type f" を指定することで
44
+
45
+ ファイルのみを対象とします。(ディレクトリを除外)
46
+
47
+ "-exec " で対象ファイルを引数にしてコマンドを実行します。
48
+
49
+ で、"{}" が対象ファイルになります。
50
+
51
+ また、"\;" は -exec を指定する時の定石ってことで。
52
+
53
+
54
+
55
+ grep コマンドの特徴として、ファイルを1つ指定した場合は
56
+
57
+ ファイル名はでませんが、複数指定された場合はでます。
58
+
59
+ 簡単な例の方ではこれを利用しています。つまり /dev/null を
60
+
61
+ 指定することにより、常に複数ファイル指定の形とする、
62
+
63
+ 結果的にヒットしたファイル名が必ず出力される、と。
64
+
65
+ (-print を付けない場合の挙動が分からなかったのでこの形にしました)
66
+
67
+
68
+
69
+ file コマンドは、指定ファイルの素性を解析するものですね。
70
+
71
+ "ASCII" で絞り込むことによってテキストファイルのみを抽出します。
72
+
73
+
74
+
75
+ awk で fileコマンドの出力からファイル名のみを切り出し、
76
+
77
+ echo でファイル名を表示し、grep で検索しています。
78
+
79
+ 今から考えると、こちらも /dev/null を与える形にして
80
+
81
+ echo を省いた方がよかったかなって気もしますね。
82
+
83
+ いまさらですが。