sedを学びようとすると、このような状況が発生しました。
$ echo "abcd" | sed -n "/b/p"
abcd
うまくいきます、
$ echo "abcd" | sed -n "
→ /b/p"
abcd
またいいけど、
$ echo "Abcd" | sed -n "/b
/p"
sed: -e expression #1, char 2: unterminated address regex
バグ報告にはどのような問題がありますか?
答え1
/b/p
完全なsedコマンドです。各sedコマンドは1行にする必要があります。 1行に入力すると、/b
sedはそれを構文エラーとして扱います。合格を試すことができます。
echo "abcd" | sed -n "/b"
結果を確認してください。また試すことができます
echo "abcd" | sed -n "/b/p
> p"
そして、このコマンドが完了した後に次のコマンドが適用されることを確認してください。
答え2
sed
パターンは基本的に行ベースなので、2番目のスラッシュが最初の行と同じ行にあると予想します。からinfo sed
:
SCRIPTまたはSCRIPT-FILEのコマンドは、セミコロン( ';')または改行(ASCII 10)で区切ることができます。
答え3
Linuxのほとんどのコマンドはデフォルトで行ベースであるため、2番目のスラッシュが最初のスラッシュと同じ行にあると予想します。 3番目のタスクを実行するには、次のものを使用できます。
$ echo "Abcd" | sed -n "/b\
/p"
Abcd