以下のデータをキャプチャするために grep を使用しようとしています。
"\\.xy$" "\\.ab$" "\\.ef\\.hi$"
私は持っている
grep -Eo "((\\\\\.[a-zA-Z]+)){1,2}\\$" ファイル
2 つの問題:
- \\.xy$ のようなものはキャプチャできますが、\\.xy\\.ef$ はキャプチャできません
- 返された結果の末尾にリテラル $ が含まれているのはなぜですか?
以下のデータをキャプチャするために grep を使用しようとしています。
"\\.xy$" "\\.ab$" "\\.ef\\.hi$"
私は持っている
grep -Eo "((\\\\\.[a-zA-Z]+)){1,2}\\$" ファイル
2 つの問題:
ドルの前にバックスラッシュを 1つ付けます。
% grep -Eo '"(\\\\\.[[:alpha:]]+){1,2}\$"' input
"\\.xy$"
"\\.ab$"
"\\.ef\\.hi$"
または、特殊文字を角かっこに入れると、読みやすくなります。
% grep -Eo '"([\]{2}[.][[:alpha:]]+)+"' input
"\\.xy$"
"\\.ab$"
"\\.ef\\.hi$"
$ をダブルエスケープしました - これを試してください:
grep -Eo '"((\\\\\.[a-zA-Z]+)){1,2}\$"' file