如何用sed删除“]”后一行中的所有字符?

如何用sed删除“]”后一行中的所有字符?

如何使用 sed 删除“]”后一行中的所有字符?

我尝试使用 cat、awk grep 一些文件。现在我的一行程序返回类似

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

现在我想删除“]”字符后的所有内容(带有“]”)。我只希望121.122.121.111在我的输出中。

我正在谷歌搜索 sed 的特定示例,但在这些示例中没有找到任何帮助。

答案1

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

因此,如果你有一个充满类似行的文件,你可以这样做

 sed 's/].*//' filename

答案2

那么如何cut呢:

cat logfile | cut -d "]" -f1

答案3

就像是

sed 's|\(.*\)\] .*$|\1|'

应该可以满足您的要求。\(.*\)]将捕获到 的所有文本并将其]保存为记住的模式,然后\1将其替换为整行。

相关内容