I正規表現正規表現内の改行文字が行全体と一致するのはなぜですか?
^1.*\n
停止、その後、任意の数の文字および改行文字に続く1で始まる行と一致する必要があり、それを理解できるように。 Perlの正規表現を使用すると、その後、任意の数の文字と改行文字、次の行の全体に続いて1で始まる行と一致しているとき、それは実際に何をするか:私は実際に長いに取り組んでいた
-bash-3.2$ cat testfile
1 dghdfgdgdgdfgdfggd
2 dghdfgdgdgdfgdfggd
3 dghdfgdgdgdfgdfggd
1 dghdfgdgdgdfgdfggd
2 dghdfgdgdgdfgdfggd
3 dghdfgdgdgdfgdfggd
1 dghdfgdgdgdfgdfggd
2 dghdfgdgdgdfgdfggd
3 dghdfgdgdgdfgdfggd
-bash-3.2$ grep -P '^1.*' testfile
1 dghdfgdgdgdfgdfggd
1 dghdfgdgdgdfgdfggd
1 dghdfgdgdgdfgdfggd
-bash-3.2$ grep -P '^1.*\n' testfile
1 dghdfgdgdgdfgdfggd
2 dghdfgdgdgdfgdfggd
1 dghdfgdgdgdfgdfggd
2 dghdfgdgdgdfgdfggd
1 dghdfgdgdgdfgdfggd
2 dghdfgdgdgdfgdfggd
なぜそれがうまくいかなかったのか不思議に思って、それを上記の問題にまで追跡しました。私の質問は主に「なぜこのように行動しているのか」ですが、私が望むマッチを得る方法を聞いてうれしいです。
おかげデフォルトで
'-oP'オプションを渡そうとしましたか? 'grep -oP '^ 1。* \ n' testfile'です。 [* '--only-matching' - 一致する行の一致した(空ではない)部分だけを出力し、そのような部分は別々の出力行に出力します。*](http://www.gnu.org/software/ grep/manual/grep.html) –