このエラーが発生します。
REエラー:無効な反復演算子オペランド
FreeBSD sed では csh を使用してください。
コマンドは次のとおりです。
sed -rn 's/.*?VIEW ([^\s]+?) (AS .*?)\s([^\s]+?)\s([^\s]+?)/DROP VIEW \1;\nCREATE VIEW \1 \2;/p'
私は見たこの問題しかし、私はsを持っていませんが、sは*+
いくつかありますが、*?
それは欲がないことを意味するはずです。私は何が間違っていましたか?
ベストアンサー1
これは質問に対するコメントですでに述べられていますが、答えをより明確にするために、次のようにします。
標準正規表現を使用するか拡張正規表現パターンを使用しても、sed では非貪欲な一致を使用できません。
一致を終了する必要がある文字がわかっている場合は、次の手法を使用できます。https://0x2a.at/blog/2008/07/sed--non-greedy-matching/
グリディマッチング:
$ echo "<b>foo</b>bar" | sed 's/<.*>//g'
bar
貪欲ではないマッチング:
$ echo "<b>foo</b>bar" | sed 's/<[^>]*>//g'
foobar