ホストファイルに関する内容です。
入力する:
1.2.3.4 foooo00001 foo001 # AIX bar0003 NOSLS NOSLS NOCOMMENT
2.3.4.1 foooo00002 foo002 fooo0002 # Linux bar0003 NOSLS NOSLS NOCOMMENT
出力:
echo "$INPUT" | awk '{print $(NF-3)";"$2";"$1";"$(NF-2)";"$(NF-1)}'
bar0003;foooo00001;1.2.3.4;NOSLS;NOSLS
bar0003;foooo00002;2.3.4.1;NOSLS;NOSLS
しかし、私たちには次のような出力が必要です。
echo "$INPUT" | awk SOMEMAGIC
bar0003;foooo00001;1.2.3.4;NOSLS;NOSLS;foo001
bar0003;foooo00002;2.3.4.1;NOSLS;NOSLS;foo002;fooo0002
質問:エイリアスを追加するためにawkをどのように変更しますか?
スペースは区切り文字で、エイリアスはホスト名の後に続き、常に「#」で終わります。
ベストアンサー1
気に入ったらawk
試してみてください
echo "$INPUT" | \
awk -v OFS=';' '
{for(i=4;$i!="#";i++)
$3=$3 OFS $i
print $(NF-3),$2,$1,$(NF-2),$(NF-1),$3}'
GNUでも同じことができますsed
echo "$INPUT" | \
sed -r 's/(\S*)( \S* )(.*) # \S* (\S*)( .* )\S*/\4\2\1\5\3/;s/ /;/g'