Ответ 1
Вам нужно закрыть имена файлов в двойных кавычках:
awk '{if($2>10) {print > "outfile1"} else {print > "outfile2"}}' infile
Я хочу печатать разные строки в разных выходных файлах с помощью awk, в зависимости от разных условий, например
awk '{if($2>10) print > outfile1; else print > outfile2}' infile
но этот script не работает как его изменить? спасибо! >
Вам нужно закрыть имена файлов в двойных кавычках:
awk '{if($2>10) {print > "outfile1"} else {print > "outfile2"}}' infile
Попробуйте сделать это:
awk '{if($2>10) print > "outfile1"; else print > "outfile2"}' infile
Если вы опустите "
, вы перенаправляетесь на (возможно, не существующие) переменные. В моем случае я перенаправляю файлы.
awk '{print > "outfile" ($2>10 ? 1 : 2)}' infile
Вы можете просто пережить это два раза вместо этого.
cat infile | awk '{if($2>10) print}' > outfile; cat infile | awk '{if($2<=10) print}' > outfile2
Обозначьте имена своих файлов в двойных кавычках, и вам хорошо идти.