1

sed を使用して、html ファイルからパターンを削除しようとしています。タイムスタンプは、1 ~ 2 桁の数字、4 文字の単語、および前の単語で構成されます

例:

25 mins ago

また:

1 hour ago

等々。次のようにsedを使用してみました:

sed -i "s/([0-9]{1,2}) [a-z]* ago//g"

Sed は何もしません。正規表現が間違っているのか、文字を正しい方法でエスケープしていないのかわかりません。

編集:余分なスペースを削除してその表現を修正しました。チョロバに感謝します。これで、sed はファイルからほとんどのテキストを削除します。表現は貪欲である必要はありませんか?> < また、タイムスタンプが次の例で囲まれていることにも言及する必要があります。

>1 hour ago<

編集:これが私にとってうまくいったことです。ありがとうラヴォリ。

sed -i 's/[0-9]\{,2\} [[:alpha:]]\{4,5\} ago//g'

どんな助けでも大歓迎です!

4

2 に答える 2

3

以下を試してください。{量指定子のメタ文字をエスケープ}する必要があります。sed

echo "1 hour ago" | sed  's/[0-9]\{,2\} [[:alpha:]]\{4\} ago//g'
于 2013-04-23T16:12:04.407 に答える