sed -e '/^USA_FORMAT=/s,"$, /usr/.../jarsigner.1 /usr/.../jars 6 3 END",'
т. е. в строке, начинающейся с USA_FORMAT=
, замените окончательную "
на/usr/...END"
(с последней кавычкой в конце новой строки ). Если это сценарий оболочки, вы можете игнорировать существующую кавычку и вместо этого добавить новую часть с новым набором кавычек. Вы получите var="foo""bar"
, но это совершенно верно.
Или аналогично в Perl:
perl -pe 's,"$, /usr/.../jarsigner.1 /usr/.../jars 6 3 END", if /^USA_FORMAT=/'
или
export repl='/usr/... END'
perl -pe 's/"$/ $ENV{repl}"/ if /^USA_FORMAT=/'
поэтому вам не нужно выбирать разделитель для s
на основе того, что строка замены (не содержит )(s ).
Рабочий процесс для cp/mv заключается в том, чтобы открыть выбранные пути в вашем $VISUAL (else $EDITOR )и позволить вам редактировать их (, потому что, если вы выбрали 20 файлов, это не имеет смысла. спрашивать и переименовывать по одному ).
Ваш $VISUAL/$EDITOR настроен на gvim, поэтому список открывается в gvim. Переименуйте записи по своему усмотрению и сохраните файл, чтобы изменения вступили в силу.
В вашем случае вы не переименовали запись в.txt перед сохранением файла, поэтому отображается сообщение об ошибке. Вы не можете иметь 2 файла с одним и тем же в каталоге.
Примечание :Если вы хотите использовать редактор cli, такой как vim, установите $VISUAL ($EDITOR, если вы не хотите устанавливать $VISUAL )для vim и использовать опцию программы -e
.