sedを使用して行の一部を削除しますか?

sedを使用して行の一部を削除しますか?

次の出力があります。

Date Time: June 22 12:40:00

Product User Host IP

Software User User *.***.***.***
Software1 User User *.***.***.***

sedandのいくつかの機能を試しましたが、うまくawkいきません。テキストを次の方向に保持したい。

Date Time: June 22 12:40:00

Product User Host

Software User User 
Software1 User User

次のコマンドがあります。

$ cat Mathematica_06-* | \
  grep -w -A 4 -B 5 "AER8\|User\|User1\|User2\|User3\|User4\|User5\|User6\|User7\|User7\|User8\|User9\|User10\|User11\|User11\|User12\|User13\|User14\|User15\|User16\|User17\|User18\|User19" | \
  awk '{print $1,$3,$4,$5,$7}' | \
  egrep -v
    > Output.log

最後に追加しようとしましたが、egrep -v "|IP"そのコマンドにその行を入れると、次の出力が表示されます。

Date Time: June 22 12:40:00

Softare User User 
Software User User

行の残りの部分に影響を与えずに「IP」と「*」の部分を削除する他の方法はありますか?

ベストアンサー1

sedを使う

sed -i -e 's/\*.*//g' -e 's/ IP//g' -e '\$^Syntax.*$d' File*

これはまた働きます:

awk '/Date/{print $0} /^Product|^Soft/{print $1" "$2" "$3} /^$/' File*

おすすめ記事