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'
ファイルで上記の構文を試していますが、出力が一致していないようです!
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'
ファイルで上記の構文を試していますが、出力が一致していないようです!
$
(ドル記号)を削除するだけです:
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?
私の 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'
-r
Linux では、次の代わりにフラグを使用できます-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'