Главная > Обработка текста и поиск > awk-print

awk print: Вывод текстовых данных

Руководство по оператору `print` для вывода данных в команде `awk`. `print` является одной из ключевых функций в скриптах `awk` и используется для отправки обработанного текста из файлов или потоков в стандартный вывод. Он позволяет гибко выводить определенные поля, целые строки или пользовательские строки.

Обзор

Оператор `print` в `awk` используется для вывода данных, извлеченных из входных записей (строк), в стандартный вывод. Вы можете выбирать данные по полям (столбцам), комбинировать несколько полей для вывода и контролировать вывод в зависимости от условий. `print` является одним из самых основных действий в скриптах `awk`.

Основные возможности

Ключевые возможности `awk print` включают:

  • Вывод всей строки или определенных полей
  • Использование встроенных переменных (NR, NF, FS, RS и т. д.)
  • Вывод комбинаций строк и полей
  • Поддержка условного вывода
  • По умолчанию добавляет перевод строки после каждого вывода

Примеры использования

Различные примеры использования оператора `print` в `awk`. Предполагается, что пример файла `data.txt` выглядит следующим образом: `apple 10 red banana 20 yellow orange 15 orange`

Вывод всей строки

awk '{print}' data.txt

Выводит все строки входного файла как есть.

Вывод первого поля

awk '{print $1}' data.txt

Выводит только первое поле ($1) каждой строки.

Вывод нескольких полей и пользовательской строки

awk '{print "Item:", $1, "Color:", $3}' data.txt

Выводит первое и третье поля, разделенные запятой, и добавляет пользовательскую строку.

Вывод при выполнении определенного условия

awk '$2 > 15 {print}' data.txt

Выводит только те строки, где второе поле ($2) больше 15.

Вывод последнего поля

awk '{print $NF}' data.txt

Выводит последнее поле ($NF) каждой строки. NF — это встроенная переменная, представляющая общее количество полей в текущей строке.

Вывод после изменения разделителя полей

echo "fruit,100,red\nbanana,200,yellow" | awk -F',' '{print $1, $2}'

Указывает разделитель полей ввода (-F) как запятую (,) и выводит первое и второе поля. (Пример файла: `fruit,100,red\nbanana,200,yellow`)

Советы и примечания

Советы и моменты, на которые стоит обратить внимание при более эффективном использовании `awk print`.

Советы по производительности и использованию

  • Используйте `printf` вместо `print`: `printf` позволяет точно контролировать форматирование, аналогично `printf` в языке C. `print` по умолчанию вставляет OFS (разделитель полей вывода) между каждым аргументом и добавляет OSR (разделитель записей вывода, по умолчанию перевод строки), тогда как `printf` требует явного указания формата пользователем.
  • Четко указывайте разделитель полей (`-F`): Если разделитель полей во входном файле не является пробелом, используйте опцию `-F` для обеспечения правильного разделения полей.
  • Управляйте сложной логикой в файлах скриптов `awk`: Если скрипт становится длинным, лучше управлять им в отдельном файле, используя формат `awk -f script.awk data.txt` для улучшения читаемости и удобства сопровождения.
  • Используйте встроенные переменные: Использование мощных встроенных переменных `awk`, таких как `NR` (номер текущей записи), `NF` (количество полей в текущей записи), `FS` (разделитель полей ввода), `RS` (разделитель записей ввода), позволяет осуществлять более гибкую обработку.

Те же команды в категории