標準Unix工具 「添加列」 是paste
。
如果你的腳本生成一行輸出爲textfile.csv輸入的每一行,你可以粘貼文件一起並排側是這樣的:
perl myscript.pl > tmpfile.csv
paste -d , textfile.csv tmpfile.csv > new_textfile.csv
或者你可以在一個做到這一點一步用管代替(省略臨時文件):
perl myscript.pl | paste -d , textfile.csv - > new_textfile.csv
如果你的腳本才動作2列輸入3,不知道怎麼不理列1,你可以提取2列和3供給您的腳本:
awk -F, '{print $2, $3}' textfile.csv | perl myscript.pl | ...
(但要注意的是用AWK調用-F,
不是一個完全通用的CSV解析器,而不會處理引用。)
最後,如果你的腳本的每次調用只知道如何在一臺運行對數字(即從textfile.csv
一行輸入),你可以使用一個循環,像這樣的:
cp /dev/null tmpfile.csv
awk -F, '{print $2, $3}' textfile.csv | while read col2 col3
do
perl myscript.pl $col2 $col3 >> tmpfile.csv
done
paste -d , textfile.csv tmpfile.csv > new_textfile.csv
或者你可以讓幻想和重定向環路的輸出:
awk -F, '{print $2, $3}' textfile.csv | while read col2 col3
do
perl myscript.pl $col2 $col3
done > tmpfile.csv
paste -d , textfile.csv tmpfile.csv > new_textfile.csv
或者,如果你真的想成爲一個牛仔:
awk -F, '{print $2, $3}' textfile.csv | while read col2 col3
do
perl myscript.pl $col2 $col3
done | paste -d , textfile.csv - > new_textfile.csv