1

大量の通話ログを含むファイルがあり、bash を使用してクリーンアップしようとしています。文字列を検索してその行全体を削除する方法を見つけましたが、それは私が達成したいことではありません。

例として文字列を検索したい:

  • ファイルには大量の MAC アドレスがあり、それらをすべて削除したいMAC:00-0A-DD-84-01-33
  • また、各行の先頭には次のような呼び出し ID があります: 354469805または354469894、これらもすべて削除したいと思います。

私はbashを始めたばかりなので、無知を許してください。明確にするために、通話ログの 2 行を以下に入力します。3544 番号、MAC アドレス、Telepacific という単語を削除したいです。

354469725   06/24/2013  09:34   00:03:26    Chante Squires      105 TelePacific     MAC:00-0A-DD-84-01-1D   TelePacific                 17025290701 1   
354469732   06/24/2013  09:59   00:01:16    Chante Squires      105 TelePacific     MAC:00-0A-DD-84-01-1D   TelePacific                 12132238375 1   
4

2 に答える 2

1

1 つの方法awk(余分なタブ スペースが失われ、すべてのフィールドが 1 つのスペースで区切られます):

awk '{for(i=2;i<NF;i++) if(8>i || i>10) printf "%s ", $i; print $NF}' log
于 2013-06-27T20:11:25.440 に答える