对输入文件的每一行执行一个脚本

对输入文件的每一行执行一个脚本

我有一个 100 行 5 列的 txt 文件。我想自动执行一个脚本,读取文件的每一行,将第一列作为第一个参数,将第二列作为第二个参数等。如何解决这个问题?

答案1

如果没有提供真实的例子,很难给出明确的答案,但是你可以使用 bash shell 内置read函数的数组形式,例如:

while read -ra arr; do cmd "${arr[@]}"; done < file

例如给定一个文件

$ cat file
foo some arg 3
bar otherarg 5 -o bar
baz "arg with spaces" -99

然后

$ while read -ra arr; do echo cmd "${arr[@]}"; done < file
cmd foo some arg 3
cmd bar otherarg 5 -o bar
cmd baz "arg with spaces" -99

或者,如果您的命令参数很简单(例如没有引号空格),那么您可以尝试xargs例如

xargs -L1 -a file cmd

相关内容