У меня есть следующая команда awk, которая отлично работает:
awk 'BEGIN { ORS = " " } {print 22, $1, NR; for(i=2;i<=NF;++i) print $i}{print "\n"}' file
Он вставляет два столбца: значение 22 в качестве первого и номер строки в качестве третьего (см. этот вопрос ).
Я попытался запустить эту команду в цикле for следующим образом:
for p in 20 21 22
do
awk 'BEGIN { ORS = " " } {print $p, \$1, NR; for(i=2;i<=NF;++i) print \$i}{print "\n"}' file > file$p
done
Таким образом, вместо 22 в первом столбце создаются 3 файла, каждый из которых имеет 20, 21 или 22 в качестве первого столбца. К сожалению, это не работает, и я получаю сообщение: ^ обратная косая черта не последний символ в строке .
Возможно, это как-то связано с тем, как я избежал символов $, но я не знаю, как еще это сделать ... есть идеи?