web-dev-qa-db-ja.com

sedで「]」の後に1行のすべての文字を削除するにはどうすればよいですか?

Sedで "]"の後の1行のすべての文字を削除する方法

私は猫、awkを使用していくつかのファイルをgrepしようとしています。今私のワンライナーは私に何かを返します

121.122.121.111] other characters in logs from sendmail.... :)

ここで、 "]"の後の文字( "]"付き)をすべて削除します。 121.122.121.111私の出力。

私はその特定のsedの例を探していましたが、それらの例では何の助けも見つかりませんでした。

13
B14D3
 echo "121.122.121.111] other characters in logs from sendmail...." | sed 's/].*//' 

だからあなたがそのような行でいっぱいのファイルがあるなら、あなたはすることができます

 sed 's/].*//' filename
21
Mike

代わりにcutはどうですか:

cat logfile | cut -d "]" -f1
12
Sven

何かのようなもの

_sed 's|\(.*\)\] .*$|\1|'
_

あなたがしたいことをする必要があります。 \(.*\)]は、_]_までのすべてのテキストを記憶されたパターンにキャプチャし、_\1_はそれを行全体の代わりに使用します。

3
user9517