正規表現を含むいくつかの操作を行う必要があります。私が上で動作してい正規表現 - 文字クラス内で短い文字を使用する
文字列:
/dev/fd0 /media/floppy0 auto rw,us
は基本的に、私は何をしたい最初の2つのパラメータ(/dev/fd0
と/media/floppy0
)に乗り、私は、この後のすべてを無視したいです。達成するために、以下に示す正規表現を試しました。私の質問は、次の正規表現ではなぜ異なる結果が生じるのでしょうか?
正規表現1:
grep -o '/dev/f\S*\s*\S*' /etc/fstab
出力(私は期待していた出力):
/dev/fd0 /media/floppy0
正規表現2:
grep -o '/dev/f[\S]*\s*[\S]*' /etc/fstab
出力:
/dev/f
正規表現3:
grep -o '/dev/f[^\s]*\s[^\s]*' /etc/fstab
出力:2と3を1として、私はそれを見る方法は同じ出力を生成しない理由
/dev/fd0 /media/floppy0 auto rw,u
私は見ていないがためにということです2では、文字クラスの中に空白以外の短い文字(\S
)を入れるかどうかは関係ありません。 3と同じです。さらに、なぜ3と2が違うのですか? [\S]
は[^\s]
と同じですか?
素晴らしい!説明ありがとう。 – kpatelio
@ user600194:ようこそ! – ruakh