0

誰かが私がここで間違っているかもしれないことを教えてください:

sed 's/&.*?;\s//'

「THIS TEXT」以外をすべて削除しようとしています

lt;td rowspan="2" width="80" valign="top" >
<img src="http://foo.bar/image.jpeg" />
</td>
<td>
THIS TEXT

4

3 に答える 3

0

検索する文字列が一定の場合は、単純なものを使用できますgrep

grep -o "THIS TEXT" file.txt

sedそれ以外の場合は、パターンマッチングを使用して、次のことを試してください。

sed -e 's/&.*;$//' -e '/^$/d' -e '/^lt;td/d' file.txt

-e '/^lt;td/d'データファイルに他の望ましくない行が含まれている場合は、それらを削除するために、次のような複数の式を含める必要がある場合があります。

HTH

于 2012-07-12T03:49:47.657 に答える
0

正規表現の&.*?;\s検索:

  • 1つのアパーサンド&
  • 任意の数の任意の文字.*
  • 疑問符?
  • 1つのセミコロン;
  • 1つの空白文字\s

;ただし、サンプルテキストの後に疑問符や空白はありません。

?これは、デフォルトでは繰り返し演算子として解釈されないことに注意してください。それが必要な場合は、sed -r(またはsed -EMacで)を使用して「拡張」正規表現を有効にする必要があります。これは下位互換性のあるものです。

于 2012-07-12T03:55:45.287 に答える
0

これのことですか?

bash:/home/tene>cat file
lt;td rowspan="2" width="80" valign="top" >
<img src="http://foo.bar/image.jpeg" />
</td>
<td>
THIS TEXT


bash:/home/tene>sed -e '/^[&l]/d' -e 's/
$//g' file
THIS TEXT
于 2012-07-12T04:46:17.967 に答える