2010-04-08 20 views
1

如何将文本文件中的每一行作为参数传递给我写的脚本?因此,每一行每一行本身都是脚本的一个参数。将行作为参数传递给脚本

+3

更具体一点。为什么perl标签在那里?你正在读取perl中的行,然后传递给脚本,还是你在perl中传递的脚本?如果后者比perl标签是无关紧要的,并且您需要告诉我们您希望将参数自动传入的语言。 – 2010-04-08 16:45:33

+0

这种情况是后者。任何语言都可以通过论证。 – syker 2010-04-08 17:03:11

回答

3
cat file | xargs --replace script {} 

我要指出的是,如果你想要的文件的每一行被当作一个参数传递给你的脚本,如适当加引号的{},最有可能的\“{} \”

+0

错误{{}将被替换为一个参数,而不管内容。你想要的是将分隔符从任何空格(默认)更改为换行符,仅使用'-d'\ n''或类似的。 – ephemient 2010-04-10 02:48:08

1

你可以这样做

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" 
2

无需cat

xargs -I {} --arg-file input-file script_file {}