如何使用 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
将其替换为整行。