3

我有一些在TextWrangler下运行良好的Grep查找/替换命令,如下所示:

查找:(\"\d+.\d{3})+(\d{3}+[\s]+)

替换:\1s

例如,此查找/替换将替换:

TXTXTXT"123.123456 TTXTXXT by TXTXTXT"123.123sTXTXTXT

现在我想通过使用 egrep 在命令行中做同样的事情,但它不起作用:

egrep -e 's/(\"\d+\.\d{3})+(\d{3}+[\s]+)/\1s' -f m.txt > n.txt

egrep:正则表达式太大

任何的想法?先感谢您。

4

1 回答 1

0

您当前的问题是 -f 选项从文件中读取正则表达式。摆脱它。并在您使用时丢失 -e。只需使用:

egrep [regexp] [file] > [another file]

然而,这会给您留下另一个问题:grep 只打印匹配项,它不进行替换。您可能应该使用 sed 代替。

于 2012-05-24T21:13:47.663 回答