awk はフィールドの一部を切り取り、まだ行全体を印刷します。

awk はフィールドの一部を切り取り、まだ行全体を印刷します。

私は次の行を持っています:

08:30:02.480507 IP 192.168.100.150.65119 > 192.168.100.151:53 59865 [1au] A? click.em.redbox.com. (48)

タイムスタンプから「.480507」を削除する必要があるため、行は次のようになります。

08:30:02 IP 192.168.100.150.65119 > 192.168.100.151.53: 59865 [1au] A? click.em.redbox.com. (48)

私は成功せずにいくつかの厄介で切り捨てられたステートメントをたどりました。 awk onelinerを探したいのですが、sedはより良い解決策かもしれません。このように編集することについてはわかりません。

注:これは例です。削除する必要があるタイムスタンプ部分は、タイムスタンプが異なる複数の行に対してこれを行う必要があるものと同じではありません。

ベストアンサー1

最も簡単な方法awkは、スペースで区切られた最初のフィールドで正規表現を置き換えることで、ピリオドからフィールドの終わりまですべてを置き換えることです。

awk '{sub(/\..*/,"",$1)}1' somefile

おすすめ記事