regex - + 正则表达式在 sed 中不起作用

标签 regex linux sed

团队,

我有一个包含以下数据的文件。

[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 awk (FIELDWIDTHS) 中,没有正则表达式:

$ awk 'BEGIN{FIELDWIDTHS="5 4 4"}{print "First:",$1,"Second:",$2,"Third:",$3}' file
First: (555) Second: 555- Third: 1212
First: (555) Second: 555- Third: 1213

sed 中的另一个:

$ sed 's/^/First: /1;s/./& Second: /12;s/./& Third: /25' file
First: (555) Second: 555- Third: 1212
First: (555) Second: 555- Third: 1213

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

相关文章:

java - java中的正则表达式 : error for str. 替换 ("\s+", "")

python - 使用 Mechanize python在url中搜索文本

c# - 用于删除单行 SQL 注释的正则表达式 (--)

c - gtk 从对话框中显示对话框

java - 在Java中应用sed替换表达式

regex - sed 在两个字符串之间替换通配符

sql开头和结尾

c - 如何使用共享内存传递数据并将接收到的数据保存到文件

c++ - 使用 pthread_cancel : good practice or bad 取消线程

linux - 如何更改 csv.bz2 中的日期格式列并更新 Unix 中的文件