Из-за пробелов между одним словом Awk изменился вывод

Из-за пробелов между одним словом Awk изменился вывод

например: «Локальный адрес» awk считают локальным и адрес отдельно

 # netstat -antulp | awk 'NR>1' Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1115/rpcbind tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1397/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1271/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1473/master tcp 0 0 0.0.0.0:55547 0.0.0.0:* LISTEN 1133/rpc.statd 

Результат: $4 $5 $6

 Local Address Foreign Address PID/Program name 0.0.0.0:111 0.0.0.0:* 1115/rpcbind 0.0.0.0:22 0.0.0.0:* 1397/sshd 127.0.0.1:631 0.0.0.0:* 1271/cupsd 127.0.0.1:25 0.0.0.0:* 1473/master 0.0.0.0:55547 0.0.0.0:* 1133/rpc.statd 

  • Получить каждый столбец, который содержит несколько пробелов?
  • Получить весь список файлов за последние 5 секунд
  • Получение неправильного ответа с даты через awk
  • Как объединить два файла на основе соответствия двух столбцов?
  • Условная grepping
  • разделить линию на основе пробела и удалить вторую часть
  • Как префикс значений столбца с апострофом (')?
  • Извлечь имя файла из пути в awk-программе
  • 2 Solutions collect form web for “Из-за пробелов между одним словом Awk изменился вывод”

    Из руководства awk:

    Утилита awk должна интерпретировать каждую входную запись как последовательность полей, где по умолчанию поле представляет собой строку непустых символов без символа новой строки . Этот разделитель полей пустой и новой строки по умолчанию можно изменить с помощью встроенной переменной FS или опции -F sepstring.

    Вы можете изменить поведение, используя параметр «-F», или установив параметр FS в свой awk-код:

     awk 'BEGIN{FS="\t"} {print $1 $2 $3}' 

    Насколько netstat делает вывод, я не могу ответить. 🙂

    пытаться

     netstat -antulp |\ awk 'NR == 1 { skip } NR == 2 { printf "%s %-19s\t%s %-18s\t%s %s\n",$4,$5,$6,$7,$9,$10} NR > 2 { printf "%-24ss\t%-24ss\t%s\n",$4,$5,$6 ;}' 

    где

    • первая строка пропущена
    • вторая строка, я выбираю поле, которое вам нужно (и отрегулируйте размер столбца)
    • все остальные строки, поле печати с настройкой
    • Я сбрасываю линию для лучшего обзора, это может быть одно выровнено, конечно.
    Linux и Unix - лучшая ОС в мире.