web-dev-qa-db-ja.com

'$$$$$'をgrepする方法は?

jsonファイルに次の文字シーケンス$$$$$(つまり、5ドル記号)がないことを確認したいのですが、カンマの代わりにgrepを使用して区切ります。フィールドと私はこれが既存の同様のシーケンスとの競合を引き起こさなかったことを確認する必要があります。

しかし、$をgrepすると、同様の行数になります。 $は行末の特殊文字のようですか?

Grepを使用して$$$$$を検索するにはどうすればよいですか? $は特別なキャラクターですか?

4
user9371654

$は行末の特殊文字のようですか?

うん、その通り。そして、すべての行に行末があります。

\$\$\$\$\$をパターンとして使用するか、grep -F '$$$$$'を使用して、正規表現ではなく固定文字列としてパターンを使用するようにgrepに指示する必要があります。

または、より短いバージョンの正規表現パターン:基本正規表現では\$\{5\}、拡張正規表現では\${5}grep -E)。

(基本的な正規表現(プレーンgrep)では、実際には最後のドル記号をエスケープするだけでよいので、$$$$\$の代わりに\$\$\$\$\$を使用します。ただし、拡張(grep -E)およびPerl正規表現はすべてエスケープする必要があるので、とにかくそれを行うのが良いでしょう。

18
ilkkachu