3

次のようなGrepの検索/置換コマンドがTextWranglerで正常に機能しています。

検索:(\ "\d+。\d{3})+(\ d {3} + [\ s] +)

置換:\ 1s

たとえば、この検索/置換は次のものを置き換えます。

TXTXTXT "123.123456 TXTXTXT 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 に答える