Учитывая следующую команду:
echo "1: " | awk '/1/ -F ":" {print $1}'
почему делает awk, произведите:
1:
«- F» - это аргумент командной строки, а не синтаксис awk, попробуйте:
echo "1: " | awk -F ":" '/1/ {print $1}'
Если вы хотите сделать это программно, вы можете использовать переменную FS
:
echo "1: " | awk 'BEGIN { FS=":" } /1/ { print $1 }'
Обратите внимание, что если вы измените ее в основном цикле, а не в цикле BEGIN
, он вступает в силу для считанной следующей строки, поскольку текущая строка уже была разделена.
-F
- аргумент для самого awk
:
$echo "1: " | awk -F":" '/1/ {print $1}'
1