copy as и mv as ведут себя не так, как ожидалось, при использовании файлового менеджера терминала nnn

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 ).

1
15.06.2020, 15:03
1 ответ

Рабочий процесс для cp/mv заключается в том, чтобы открыть выбранные пути в вашем $VISUAL (else $EDITOR )и позволить вам редактировать их (, потому что, если вы выбрали 20 файлов, это не имеет смысла. спрашивать и переименовывать по одному ).

Ваш $VISUAL/$EDITOR настроен на gvim, поэтому список открывается в gvim. Переименуйте записи по своему усмотрению и сохраните файл, чтобы изменения вступили в силу.

В вашем случае вы не переименовали запись в.txt перед сохранением файла, поэтому отображается сообщение об ошибке. Вы не можете иметь 2 файла с одним и тем же в каталоге.

Примечание :Если вы хотите использовать редактор cli, такой как vim, установите $VISUAL ($EDITOR, если вы не хотите устанавливать $VISUAL )для vim и использовать опцию программы -e.

1
18.03.2021, 23:27

Теги

Похожие вопросы