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