こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

egrepで指定する正規表現

linuxでvsftpdの設定ファイルを見るときに、次のコマンドを実行している人がいました。

# egrep -v "(^$|#)" /etc/vsftpd/vsftpd.conf

上記を指定するとvsftpd.confファイルのコメント行を省いた結果が得られ、大変見やすくなりました。
ここからが質問になりますが、上記のegrepの中で-v "(^$|#)" の指定は具体的に
どういった意味になるのでしょうか。

ちょっと調べると
-v:パターンに一致しなかった行を出力します。
A|B:AとBどちらかを含む

というものが見つかったのですが、良く理解できませんでした。
どうぞよろしくお願い致します。

投稿日時 - 2018-08-13 13:01:23

QNo.9527149

困ってます

質問者が選んだベストアンサー

懐かしいので。
正規表現で^ は行頭、$は行末を意味するので、^$は空行にマッチします。
#はそのまま"#"を含む行にマッチします。
(A|B)は、A若しくはBを含む行にマッチします。
-vはパターンにマッチしなかった行
まとめると、
「空行 または #を含む行」以外の行に一致します。

...どこかコメント行の定義と違うような気がしますが :-)

投稿日時 - 2018-08-13 13:30:41

お礼

迅速かつ的確なご回答ありがとうございました。
お蔭様でスッキリ理解することができました。

投稿日時 - 2018-08-13 14:55:22

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)