末尾に$を含む行を除いて、$を含む行を削除する

末尾に$を含む行を除いて、$を含む行を削除する

$たとえば、次の文字を含む行を削除したいとします。

a$df
aheh$b$
t$$a

私はそれを維持したい一つ $、行の終わりから:

abc$
abcdwh$

テキストファイルには2M行が含まれています。

答え1

$のメタ文字はsed2つの方法で文字通り一致します。

  • \$バックスラッシュ
  • 角かっこで囲みます。[$]

しかし、別の方法があります。$正規表現の最後の文字ではない場合は、リテラルとして扱うことです。だから、

sed -e '/$./d' file

あなたの問題に合わせています。

答え2

$行の後に内容がある場合(.)、その行を削除します。

sed '/\$./d' file

このモードは以下でも機能しますgrep

grep -v '\$.' file

関連情報