Как использовать “:” как awk разделитель полей?

Учитывая следующую команду:

echo "1: " | awk '/1/ -F ":" {print $1}'

почему делает awk, произведите:

1: 
227
задан Jonathan Leffler 9 April 2010 в 08:24
поделиться

3 ответа

«- F» - это аргумент командной строки, а не синтаксис awk, попробуйте:

 echo "1: " | awk -F  ":" '/1/ {print $1}'
355
ответ дан 23 November 2019 в 03:48
поделиться

Если вы хотите сделать это программно, вы можете использовать переменную FS :

echo "1: " | awk 'BEGIN { FS=":" } /1/ { print $1 }'

Обратите внимание, что если вы измените ее в основном цикле, а не в цикле BEGIN , он вступает в силу для считанной следующей строки, поскольку текущая строка уже была разделена.

59
ответ дан 23 November 2019 в 03:48
поделиться

-F - аргумент для самого awk :

$echo "1: " | awk -F":" '/1/ {print $1}'
1
12
ответ дан 23 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: