团队,
我有一个文件,上面有下面提到的数据。
[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/