我在一個目錄中有文件。 我需要在每個文件的末尾附加一個新行和文件名。Bash,在每個文件末尾追加行
5
A
回答
7
這應該這樣做:
for f in *; do echo >> $f; echo $f >> $f; done
首先呼應了新線,然後回顯文件名。
>>
說「追加在文件末尾」。
0
編輯:aioobe的答案已更新,顯示-e標誌,我沒有看到當我第一次回答這個問題。因此,我現在只是顯示一個例子,其中包括一個目錄,如何消除目錄名稱:
#!/bin/bash
for fn in dir/*
do
shortname=${fn/#*\//}
echo -e "\n$shortname" >> $fn
done
如果你想要的目錄名,取出shortname=${fn/#*\//}
線和替換$短名稱與$回聲FN 。
0
讓xargs
做循環:
# recursive, includes directory name
find -type f -print0 | xargs -0 -I% bash -c 'echo -e "\n%" >> %'
或
# non-recursive, doesn't include directory name
find -maxdepth 1 -type f -exec basename {} \; | xargs -I% bash -c 'echo -e "\n%" >> %'
或
# non-recursive, doesn't include directory name
find -maxdepth 1 -type f -printf "%f\0" | xargs -0 -I% bash -c 'echo -e "\n%" >> %'
或
# recursive, doesn't include directory name
find -type f -print0 | xargs -0 -I% bash -c 'f=%; echo -e "\n${f##*/}" >> %'
0
使用ex
(或VIM)的另一種方法:
ex -c 'args **/*' -c 'set hidden' -c 'argdo $put =bufname(".")' -c 'wqa'
相關問題
- 1. 追加日期時間每行的末尾在一個600萬行的文件
- 2. 追加斜槓一定行的末尾在一個文件
- 3. 如何在每行Java末尾的csv文件中追加文本?
- 4. Perl遍歷文件中的每一行,並追加到另一個文件中每行的末尾 - 跟進
- 5. python在每行末尾添加新行
- 6. Concat /追加到Python中特定行的文本文件末尾
- 7. dlmwrite追加到末尾
- 8. 如何從一個文件追加行到另一個文件的每行的末尾?
- 9. 將每個單詞的第一個字母追加到末尾
- 10. 在每行末尾添加逗號
- 11. 在每行末尾添加字符
- 12. 檢查每個文件末尾的CRLF
- 13. 追加行Bash文件
- 14. 如何使用bash將多行添加到文件末尾?
- 15. 追加在鏈表的末尾
- 16. 程序集8086:追加在文件末尾
- 17. Bash追加到數組元素的末尾
- 18. 將文本追加到文件的末尾
- 19. 將\ n添加到每行的末尾
- 20. 添加的.eml到每一個文件名末尾在多個文件夾
- 21. 將每行末尾的元素添加到文件中
- 22. 追加文件名,每行
- 23. 使用Java在文件的每一行末尾添加一個字符
- 24. 在文件的每一行的末尾添加一個隨機數
- 25. JavaFX文本區:在每行的末尾添加「 - 」
- 26. 將數據追加到python文件的末尾
- 27. 追加新的msgpack數據到文件末尾
- 28. C Shell腳本 - 追加到文件名的末尾
- 29. 追加到併發環境中的文件末尾
- 30. 追加到字符串的末尾Ramda.js
這並不在文件名前添加請求換行符。 – MForster 2010-11-04 21:49:19
更新了答案。 – aioobe 2010-11-04 21:51:21
如果文件名包含\? 'printf'\ n%s \ n'「$ f」' – ephemient 2010-11-05 01:31:39