Replace 如何";翻译;Grep通过命令行查找/替换使用TextWrangler的命令

Replace 如何";翻译;Grep通过命令行查找/替换使用TextWrangler的命令,replace,grep,textwrangler,Replace,Grep,Textwrangler,我有一些Grepfind/replace命令在TextWrangler下运行良好,如下所示: 查找:(\“\d+。\d{3})+(\d{3}+[\s]+) 替换:\1s 例如,此查找/替换将替换: TXTXTXT“123.123456 TXTXTXT 按TXTXTXT“123.123sTXTXTXT 现在我想在命令行中使用egrep做同样的事情,但它不起作用: egrep -e 's/(\"\d+\.\d{3})+(\d{3}+[\s]+)/\1s' -f m.txt > n.txt e

我有一些Grepfind/replace命令在TextWrangler下运行良好,如下所示:

查找:(\“\d+。\d{3})+(\d{3}+[\s]+)

替换:\1s

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

TXTXTXT“123.123456 TXTXTXT 按TXTXTXT“123.123sTXTXTXT

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

egrep -e 's/(\"\d+\.\d{3})+(\d{3}+[\s]+)/\1s' -f m.txt > n.txt
egrep:正则表达式太大

有什么想法吗?
提前谢谢。

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

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

但是,这将给您带来另一个问题:grep只打印匹配项,不进行替换。您可能应该使用sed来代替。

谢谢您的回复。我尝试使用grep命令,只是因为我使用了“grep模式”“对于TextWrangler,查找/替换。关于sed,我做了一些尝试,但regex的语法似乎有点不同。我不知道TextWrangler,但“grep mode”通常只是正则表达式的昵称。事实上,“GRIP”中间的“RE”代表“正则表达式”——ED命令“G/Re/P”将全局搜索正则表达式,然后打印出来。正则表达式由许多不同的工具支持,它们的语法经常不同,但是egrep(e代表扩展正则表达式)和sed-r(r代表扩展正则表达式,因为已经使用了-e)应该足够相似,可以进行管理。试试看。