将行作为参数传递给脚本
答
cat file | xargs --replace script {}
我要指出的是,如果你想要的文件的每一行被当作一个参数传递给你的脚本,如适当加引号的{},最有可能的\“{} \”
+0
错误{{}将被替换为一个参数,而不管内容。你想要的是将分隔符从任何空格(默认)更改为换行符,仅使用'-d'\ n''或类似的。 – ephemient 2010-04-10 02:48:08
答
你可以这样做
while read -r line
do
./script_i_have_written.sh "$line"
done <"file"
但为什么这样做,当你的“script_i_have_written.sh”,你可以分析文本文件马上
#!/bin/bash
# script_i_have_written.sh
while read -r line
do
echo "do something with $line"
done <"file"
答
无需cat
xargs -I {} --arg-file input-file script_file {}
更具体一点。为什么perl标签在那里?你正在读取perl中的行,然后传递给脚本,还是你在perl中传递的脚本?如果后者比perl标签是无关紧要的,并且您需要告诉我们您希望将参数自动传入的语言。 – 2010-04-08 16:45:33
这种情况是后者。任何语言都可以通过论证。 – syker 2010-04-08 17:03:11