1

私の単純な質問で申し訳ありません。しかし、2 つまたは 3 つの大文字を含み、日付も含む文字列で始まるファイル内の行を削除する方法を探しています。例えば:

ABC/ Something comes here, 29/1/2001.

このようなスクリプトを作成する最初のステップで、このコードを使用して日付を含む行を見つけて表示しましたが、機能しません。

sed -e 's/[0-9]+\/[0-9]+\/[0-9]+//' myfile.txt

このコードのどこが間違っているのでしょうか? また、自分のやりたいように変更するにはどうすればよいでしょうか?

ベスト。

4

2 に答える 2

1

私は試してみます:

sed -e '/^[A-Z]\{2,3\}.*[0-9]\{1,2\}\/[0-9]\{1,2\}\/[0-9]\{4\}/ d' input-file

説明:

^                  Match at the beginning of the pattern.
[A-Z]\{2,3\}       Match two or three uppercase ASCII letters.
.*                 Match anything.
[0-9]\{1,2\}\/     Match the day, one or two digits, and the separator.
[0-9]\{1,2\}\/     Same match for the month.
[0-9]\{4\}         Match four digits for the date.
d                  If previous regexp matched, delete the line.
于 2012-06-26T21:30:08.627 に答える
1
sed -r -e '/[A-Z]+.*[0-9]+\/[0-9]+\/[0-9]+/p;d' # on Mac OSX: sed -E -e ...

そして、行を削除するには、次のようにします...

'/[A-Z]+.*[0-9]+\/[0-9]+\/[0-9]+/d'
于 2012-06-26T05:26:44.770 に答える