团队,
我有一个文件,上面有下面提到的数据。

[root@ip-12-32-8-15 ~]# cat dbbackup

(555)555-1212

(555)555-1213

预期产量:
First: (555) Second: 555- Third: 1212

First: (555) Second: 555- Third: 1213

我在用sed它不工作。
sed -n -e 's/\([0-9]+)\)\([0-9]+-\)\([0-9]+\)/First: \1 Second: \2 Third: \3/p' dbbackup

请让我知道如何实现上述输出。

最佳答案

这可能对你有用(GNU sed):

sed -r 's/$/\nfirst:second:third:fourth:\n/;:a;s/^([(0-9]+[)-]?)([^\n]*\n)([^:]*:)(.*)/\2\4 \3 \1/;ta;s/\n.*\n //' file

此方法将字符串前面的数字与追加到行末尾的字符串相匹配,然后将它们追加到引入行的末尾。最终没有更多的数字要删除,然后引入的换行符/final空格将被删除,留下所需的字符串。
注意:可以附加额外的字符串以获得更多的数字。

关于regex - +正则表达式不适用于sed,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49913293/

10-10 15:17