我有多个格式非常相似的字符串。
(#1111111)
(#4444444)
我试图使用 sed 提供输出:
1111111
4444444
我努力了:
sed 's/(#[0-9]+)/^[0-9]+/g'
看起来匹配正常,但是替换不起作用。
答案1
鉴于问题的格式,有两种方法可以做到这一点:
sed 's/.*#\(.*\))/\1/' file
这将打印出#
和 之间的所有内容,在本例中为(
和)
。
也可以这样做:
sed -e 's|^(#||g' -e 's|)$||g' file
这将从(#
字符串的开头和)
结尾删除。
输出:
1111111
4444444
如果是文件,则可以-i
在 sed 后添加以就地编辑它。对于 stdout,将提供它的命令通过管道传输到sed
。
如果这是文件或其他输出,并且存在差异,则必须调整命令。我只是根据你在问题中提供的内容进行操作。