使用管道时收集awk输出

时间:2013-12-27 05:19:29

标签: shell awk

档案是:

12345,Collect
34522,Share
45221,Result

脚本:

awk -F ',' '{print $1 $2}' file | while read -r first second
do
echo $first "and" $second
done

我正在尝试在第一个和第二个变量中收集$1$2

由于

3 个答案:

答案 0 :(得分:2)

请像这样使用{print $1 " and " $2}

$ cat file
12345,Collect
34522,Share
45221,Result
$ awk -F ',' '{print $1 " and " $2}' file
12345 and Collect
34522 and Share
45221 and Result

答案 1 :(得分:2)

您应该使用$1,$2代替$1 $2 否则awk将结合$ 1 $ 2

awk -F ',' '{print $1,$2}' file | while read -r first second
do
echo $first "and" $second
done

我猜您正在使用$first $second进行其他处理任务,但是如果您只想打印出一些字符串,@ Elliott Frisch的方式会更好

一种印刷方式是:

sed 's/,/ and /' file

答案 2 :(得分:1)

如果不使用awk,您可以做得更好。

IFS=,
while read -r first second; do
    echo $first and $second
done < file
unset IFS