从行中删除匹配的文本

时间:2014-03-14 13:28:10

标签: sed

我从日志文件中删除了一个示例。

112 172.172.172.1#50912 (ssl.bing.com):

我想要一些如何从网址中删除#和数字以及()后面的数字。

想要结果。

112 172.172.172.1 ssl.bing.com

这是我一直在努力的sed oneliner。

cat newdns.log | sed -e 's/.*query: //' | cut -f 1 -d' ' | sort | uniq -c | sort -k2 > old.log

由于

2 个答案:

答案 0 :(得分:2)

使用sed,您可以说:

sed 's/#[0-9]*//;s/(\(.*\)):$/\1/' filename

或者,在一次替换中:

sed 's/#[0-9]* *(\(.*\)):$/ \1/' filename

答案 1 :(得分:1)

另一个sed

sed -r 's/#[^ ]+|[():]//g'

$ echo '112 172.172.172.1#50912 (ssl.bing.com):' | sed -r 's/#[^ ]+|[():]//g'
112 172.172.172.1 ssl.bing.com