Я пытаюсь работать, следующие sed управляют, чтобы я, очевидно, скопировал вставляемый с Интернета:
sed -i '' -E "s/create_table\ [:\"']([a-zA-Z0-9_]+)[\"']?/create_table\ :\1, options: 'ENGINE=InnoDB ROW_FORMAT=DYNAMIC'/g" ./*.rb
Однако это дает мне:
sed: can't read s/create_table\ [:"']([a-zA-Z0-9_]+)["']?/create_table\ :\1, options: 'ENGINE=InnoDB ROW_FORMAT=DYNAMIC'/g: No such file or directory
Я не могу понять это.. я мог получить некоторую справку?
В GNU sed
это не требуется, чтобы обеспечивать пустой суффикс при использовании -i
опция отредактировать файл, оперативный без резервного копирования. Однако, если Вы делаете, это должно сразу следовать -i
без прошедшего пробела: иначе, эти ''
интерпретируется как выражение sed , которое в свою очередь заставляет Ваше фактическое выражение s/pattern/replacement
интерпретироваться как имя файла.
, Таким образом, опции:
sed -i <other options> <expression> <files>
или
sed -i'' <other options> <expression> <files>