我有一个输入(比方说一个文件)。 每行都有一个文件名。 如何读取该文件并显示每个文件的内容。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. bash中的foreach循环
- 2. FOREACH foreach循环内循环
- 3. 的foreach循环foreach循环中(Java)的
- 4. 在foreach循环内的foreach循环
- 5. PHP foreach循环外循环
- 6. Foreach循环循环两次
- 7. Foreach循环循环太多
- 8. For循环vs Foreach循环
- 9. 取foreach循环
- 10. SparkR foreach循环
- 11. foreach循环fotorama
- 12. foreach循环
- 13. C#foreach循环
- 14. Foreach循环$ _POST
- 15. 从foreach循环
- 16. PHP foreach循环
- 17. foreach循环
- 18. JSP forEach循环
- 19. 使foreach循环
- 20. PHP foreach循环
- 21. PHP foreach()循环
- 22. foreach循环
- 23. PHP - foreach循环
- 24. 在foreach循环
- 25. 在foreach循环
- 26. Foreach循环
- 27. 在foreach循环
- 28. 在foreach循环
- 29. Foreach循环PHP
- 30. C#foreach循环
这应该是最好的办法。你可以用'-r'和'-d'选项'read' – sjsam 2016-05-21 06:23:49