我想使用awk将不同的行打印到不同的输出文件,具体取决于不同的条件,例如
awk '{if($2>10) print > outfile1; else print > outfile2}' infile
但是这个脚本不起作用 怎么修改呢? !谢谢>
答案 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)
用双引号引用你的目标文件名,你就可以了。