我有一個輸入(比方說一個文件)。 每行都有一個文件名。 如何讀取該文件並顯示每個文件的內容。Bash foreach循環
108
A
回答
178
像這樣會做:
xargs cat <filenames.txt
的xargs
程序讀取它的標準輸入,以及用於輸入的每一行運行cat
程序與輸入線作爲參數(一個或多個)。
如果你真的想這樣做在一個循環中,您可以:
for fn in `cat filenames.txt`; do
echo "the next file is $fn"
cat $fn
done
3
你可能會想處理空格在文件名中,可惡的雖然都是:-)
所以我最初會選擇類似:
pax> cat qq.in
normalfile.txt
file with spaces.doc
pax> sed 's/ /\\ /g' qq.in | xargs -n 1 cat
<<contents of 'normalfile.txt'>>
<<contents of 'file with spaces.doc'>>
pax> _
12
這裏是一個while
循環:
while read filename
do
echo "Printing: $filename"
cat "$filename"
done < filenames.txt
4
xargs --arg-file inputfile cat
這將輸出文件名,然後該文件的內容:
xargs --arg-file inputfile -I % sh -c "echo %; cat %"
29
「的foreach」 是不是bash的名字。這只是「爲了」。你可以做的事情在同一行只喜歡:
for fn in `cat filenames.txt`; do cat "$fn"; done
參考:http://www.cyberciti.biz/faq/linux-unix-bash-for-loop-one-line-command/
+0
現在我想做同樣的事情,但忘記了這些步驟。可憐我的。 – 2015-01-31 07:33:42
3
cat `cat filenames.txt`
會做的伎倆
相關問題
- 1. 在foreach循環內的foreach循環
- 2. Foreach循環循環兩次
- 3. For循環vs Foreach循環
- 4. PHP foreach循環
- 5. 取foreach循環
- 6. foreach循環
- 7. Smarty foreach循環
- 8. PHP - foreach循環
- 9. SparkR foreach循環
- 10. 從foreach循環
- 11. 在foreach循環
- 12. foreach循環
- 13. SQL foreach循環
- 14. 與foreach循環
- 15. PHP foreach循環
- 16. C#foreach循環
- 17. Foreach循環PHP
- 18. Bash MD5checksum循環
- 19. PHP FPDF ForEach循環
- 20. jquery webservice foreach循環
- 21. PHP循環用foreach
- 22. 不能foreach循環
- 23. jQuery的foreach循環
- 24. foreach循環終於
- 25. 陣列Foreach循環
- 26. 計算foreach循環
- 27. Foreach循環任務
- 28. 偏移foreach循環
- 29. Foreach循環倒退
- 30. For循環內Foreach
這應該是最好的辦法。你可以用'-r'和'-d'選項'read' – sjsam 2016-05-21 06:23:49