なんかしらんけども、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 #
おわり