【发布时间】:2017-03-12 17:32:57
【问题描述】:
我有一个包含文件列表的文件,我想对每个文件执行两个命令。
files.txt 的内容:
file1
file2
file3
我想对每个文件执行的命令是(例如)ls -s 和 du。
我希望输出最终是这样的:
<ls size> <du size> file1
<ls size> <du size> file2
<ls size> <du size> file3
我知道如何使用 bash 脚本来做到这一点,但有没有办法通过进程替换或其他方式轻松地在一行上做到这一点?
我以为我可以做这样的事情,但是没有用:
cat files.txt | tr '\n' '\0' | xargs -0 -I{} cat <(du {} ) <(ls -s {})
出现了这些错误:
du: cannot access `{}': No such file or directory
ls: cannot access {}: No such file or directory
有没有办法做到这一点?
【问题讨论】:
标签: bash xargs command-substitution process-substitution