誰かが私がここで間違っているかもしれないことを教えてください:
sed 's/&.*?;\s//'
「THIS TEXT」以外をすべて削除しようとしています
lt;td rowspan="2" width="80" valign="top" >
<img src="http://foo.bar/image.jpeg" />
</td>
<td>
THIS TEXT

検索する文字列が一定の場合は、単純なものを使用できますgrep
。
grep -o "THIS TEXT" file.txt
sed
それ以外の場合は、パターンマッチングを使用して、次のことを試してください。
sed -e 's/&.*;$//' -e '/^$/d' -e '/^lt;td/d' file.txt
-e '/^lt;td/d'
データファイルに他の望ましくない行が含まれている場合は、それらを削除するために、次のような複数の式を含める必要がある場合があります。
HTH
正規表現の&.*?;\s
検索:
&
.*
?
;
\s
;
ただし、サンプルテキストの後に疑問符や空白はありません。
?
これは、デフォルトでは繰り返し演算子として解釈されないことに注意してください。それが必要な場合は、sed -r
(またはsed -E
Macで)を使用して「拡張」正規表現を有効にする必要があります。これは下位互換性のあるものです。
これのことですか?
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