Параметр awk split char

файл:

BASH.NIR SH.ABI 

Я хочу, чтобы awk покажет:

 User is NIR, SHELL is BASH User is ABI, SHELL is SH 

Я не знаю, как разбить параметр на char. Идея такова:

 cat file.txt | awk '{print "User is " afterDot($1) ", SHELL is " beforeDot($1)}' 

2 Solutions collect form web for “Параметр awk split char”

Вы можете использовать строковые функции в awk .

 $ (echo BASH.NIR; echo SH.ABI FOOBAR) | awk '{p=index($1,".");print "User is", substr($1,p+1) ", SHELL IS", substr($1,0,p-1)}' User is NIR, SHELL IS BASH User is ABI, SHELL IS SH 

Функция index возвращает позицию найденного символа (в данном случае – точку). И strstr вернет подстроку. Мы используем p+1 и p-1 чтобы не включать точку.

Для получения дополнительной информации см. Раздел «Строковые функции» страницы awk manpage.

Вы можете просто использовать . как разделитель полей:

 awk -F. '{ print "User is " $2 ", SHELL is " $1 }' file.txt 
  • Как работает `getline` в AWK?
  • Использование df и попытка awk определенного столбца
  • Почему awk выполняет полную буферизацию при чтении из трубы
  • Лучший способ применить формулу к определенному столбцу входного файла и передать все остальные столбцы как-есть
  • Обработка 3 файлов с помощью awk
  • Эффективный способ печати строк из массивного файла с помощью awk, sed или что-то еще?
  • Замените определенные строки на значение из предыдущей строки
  • Sed / awk / perl: изменение частей, сохраняющих текст, и выравнивание по столбцу
  • awk: Как выбрать несколько подстрок из файла фиксированной длины?
  • Как получить последнее вхождение строк между двумя шаблонами из файла?
  • частота появления
  • Interesting Posts

    Есть ли способ предотвратить emerge -sync для удаления файлов из дерева порталов?

    Можно ли скопировать драйвер из Windows в Linux?

    Изменение IP-адреса в терминале

    Как настроить xorg.conf для широкоэкранного VNC на безголовом Linux / Ubuntu?

    Правильно установить бит выполнения на основе типа файла?

    Изменение Linux Distro в двойной загрузке (Win10, Manjaro (Arch))

    Единая команда, берущая две строки для извлечения строки между ними, например, 'tr' (без выражений)

    Отключение затенения окна мыши в XFce?

    Как исправить частые сбои openhot?

    Выполняется стоп-задание для LVM

    При настройке SFTP между * nix-серверами, является ли это обычное рукопожатие необязательным?

    Как ядро ​​знает, какой файловый дескриптор записывать данные после fork () на параллельном сервере?

    btrfs RAID1 массив показывает как два диска

    Как смонтировать несколько каталогов на одном разделе?

    Как создать копию DVD, которая больше, чем максимальный размер файла в файловой системе?

    Linux и Unix - лучшая ОС в мире.