めもぶろぐ

お勉強したこと、趣味なんかを適当に書いてます。。。

awkでcutと同等のフィールド出力

なんかしらんけども、cutでなぜか上手くフィールドの指定ができないことが有る。

# こんな感じでしていするもうまくできない
grep -i ipv6 /var/log/messages | cut -d: -f 6- | sort -u
#
# [出力結果]
# wlp2s0f0: link is not ready
#


そんなときにawkだと思い通りに出力できたりする。
今回はcut -d' ' -f 6-と同等の処理をawkで実行する。

awk '{
	for (i=6;i<NF;i++) {
		printf("%s%s", $i, OFS=" ")
	}	print $NF
}' /var/log/messages


ということで、冒頭のcut部をawkに変更するとこうなる。

grep -i ipv6 /var/log/messages | awk '{for(i=6;i<NF;i++){printf("%s%s",$i,OFS=" ")}print $NF}' | sort -u
#
# [出力結果]
# IPv6: ADDRCONF(NETDEV_UP): wlp2s0f0: link is not ready
#

おわり

広告を非表示にする