2010-04-08 46 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 {}