Поскольку вы используете одно выражение sed
, все, что следует после w
(включая }
), интерпретируется как wfile имя :
Аргумент
wfile
завершает команду редактирования.
Вы можете увидеть, что если вы добавите вторую команду }
, например например:
sed -e '/my regex here/{w '"$file2"';d;}' -e '}' $file1
тогда строки, соответствующие моему регулярному выражению здесь
, будут сохранены в файле с именем something; d;}
где something
is any $ file1
расширяется до.
Правильный синтаксис - через отдельные команды, либо с несколькими выражениями:
sed -e '/my regex here/{w '"$file1" -e 'd' -e '}' $file2
, либо по одной команде на строку:
sed '/my regex here/{
w '"$file1"'
d
}
' $file2
На этой странице описан способ настройки пользовательского кода:
Удачи!