是否可以使用awk将不同的行打印到不同的输出文件

时间:2012-10-25 21:31:37

标签: awk

我想使用awk将不同的行打印到不同的输出文件,具体取决于不同的条件,例如

awk '{if($2>10) print > outfile1; else print > outfile2}' infile

但是这个脚本不起作用 怎么修改呢? !谢谢>

5 个答案:

答案 0 :(得分:14)

您需要用双引号关闭文件名:

awk '{if($2>10) {print > "outfile1"} else {print > "outfile2"}}' infile

答案 1 :(得分:7)

尝试这样做:

awk '{if($2>10) print > "outfile1"; else print > "outfile2"}' infile

如果省略",则重定向到(可能不存在)变量。就我而言,我重定向到文件。

答案 2 :(得分:3)

awk '{print > "outfile" ($2>10 ? 1 : 2)}' infile

答案 3 :(得分:0)

你可以改为两次。

cat infile | awk '{if($2>10) print}' > outfile; cat infile | awk '{if($2<=10) print}' > outfile2

答案 4 :(得分:0)

用双引号引用你的目标文件名,你就可以了。