我有一个 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