回答編集履歴

1

追記を追記

2019/11/21 01:12

投稿

amanoese
amanoese

スコア132

test CHANGED
@@ -21,3 +21,45 @@
21
21
  $ find -type f | awk '1;1'
22
22
 
23
23
  ```
24
+
25
+
26
+
27
+
28
+
29
+ ---
30
+
31
+ ## 追記
32
+
33
+
34
+
35
+ findだけでもいけるみたいですね。コマンドが長くなりますが……
36
+
37
+
38
+
39
+ ```bash
40
+
41
+ $ find -type f -printf '%p\n%p\n'
42
+
43
+ ``` 
44
+
45
+
46
+
47
+ また珍しいケースですが今回紹介したコードは、
48
+
49
+ ファイル名に改行が含むファイルが存在するとうまくいかない可能性が高いので気をつけてください。
50
+
51
+ https://linuxjm.osdn.jp/html/GNU_findutils/man1/find.1.html#lbAL
52
+
53
+
54
+
55
+ ``` find -type f ```ではなく``` ls -b ```などでを利用することで回避できたりしますが……
56
+
57
+
58
+
59
+ ファイル名に改行が含まれてる場合について「第33回めでたいシェル芸勉強会」の [Q5] として出題されてたりするので、ファイル名が特殊なケースについて考慮したい場合はそのあたりも調べると良いかもしれません。
60
+
61
+ https://b.ueda.tech/?post=20180127_shellgei_33#q5
62
+
63
+
64
+
65
+ 以上、参考になれば幸いです。