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
ベストアンサー1
awkマニュアルから:
awkユーティリティは各入力レコードを一連のフィールドとして解釈する必要があり、デフォルトではフィールドは文字列ではありません。スペースいいえ新しいチーム数値。このデフォルトスペースそして新しいチームフィールド区切り文字は、FS組み込み変数または-F sepstringオプションを使用して変更できます。
「-F」オプションを使用するか、awkコードでFSオプションを設定して動作を変更できます。
awk 'BEGIN{FS="\t"} {print $1 $2 $3}'
netstatがどのように出力するかについては答えられません。 :)