質問: 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とcutステートメントをいじくり回しましたが、役に立ちませんでした。私はawkワンライナーを見つけたいのですが、sedがこれに対するより良い解決策かもしれません。この方法でカットすることになると、私はどちらかについて十分に知りません。注:これは例であり、すべて異なるタイムスタンプを持つ複数の行でこのアクションを実行する必要があるため、切り取る必要のあるタイムスタンプの部分は同じではありません。
回答: 私はawkを使用しますawk --posix '{ gsub(/\.[[:digit:]]{6}/, "", $1); print }' filename最初のフィールド(スペース区切り)をターゲットにして、を検索します。続いて6つの数字を入力し、空にします。