0

2009 年 2 月 24 日の日付に一致する検索と置換スクリプト (sed) を手伝って、空白に置き換えることはできますか?

 sed 's/ \(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Aug\|Sep\|Oct\|Nov\|Dec\) [0-9][0-9], [2][0-9][0-9][0-9]$//g'

ファイルで上記の構文を試していますが、出力が一致していないようです!

4

2 に答える 2

3

$(ドル記号)を削除するだけです:

sed 's/ \(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Aug\|Sep\|Oct\|Nov\|Dec\) [0-9][0-9], [2][0-9][0-9][0-9]//g'

あなたの質問の文でテストしてください:

kent$  echo "to match a date Feb 24, 2009 and replace it with a white space?"|sed 's/ \(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Aug\|Sep\|Oct\|Nov\|Dec\) [0-9][0-9], [2][0-9][0-9][0-9]//g' 
to match a date and replace it with a white space?
于 2013-04-25T21:54:24.070 に答える
1

私の Mac では、この sed でも動作しません:

sed 's/Feb\|Mar//g'

これさえありません:

sed 's/Feb|Mar//g'

ただし、拡張正規表現スイッチを使用すると-E、次のように機能し始めます。

sed -E 's/ (Jan|Feb|Mar|Apr|May|Jun|Aug|Sep|Oct|Nov|Dec) [0-9][0-9], [2][0-9][0-9][0-9]//g'

-rLinux では、次の代わりにフラグを使用できます-E

sed -r 's/ (Jan|Feb|Mar|Apr|May|Jun|Aug|Sep|Oct|Nov|Dec) [0-9][0-9], [2][0-9][0-9][0-9]//g'
于 2013-04-25T22:02:01.550 に答える