Как добавить одинарные кавычки в команду переименования, чтобы изменить имя файла?

Я переименовываю текстовый файл из Programmer.txt в Programmer's File.txt , используя переименовать команду в терминале. Я попробовал следующую команду:

rename 's/Programmer/Programmer's\ File' *.txt 

Но она не работает. Я предполагаю, что проблема в одинарной кавычке в слове Programmer's . Как я могу это исправить?

0
задан 21 December 2020 в 20:31

3 ответа

Добавьте \ перед апострофом, чтобы избежать цитаты:

mv Programmer\'s File.txt Whatever.txt
-1
ответ дан 3 January 2021 в 22:46

Вам нужен escape-символ:

sudo mv Programmer.txt "Programmer \ 's File.txt"

Escape-символы сохраняют следующий символ, чтобы Bash или любая другая программа не интерпретировала его каким-либо иным образом, кроме литерала.

1
ответ дан 3 January 2021 в 22:46

Поскольку одинарные кавычки не являются особенными, когда они находятся внутри двойных кавычек, самый простой способ -

rename -n "s/Programmer/Programmer's File/" *.txt

(обратите внимание, что символ пробела не нужно экранировать, так как кавычки уже защищают его от расширения оболочкой).

В качестве альтернативы, закройте кавычку, передайте экранированную кавычку \ ' оболочке, затем снова откройте кавычки:

rename -n 's/Programmer/Programmer'\''s File/' *.txt

или вы можете вообще отказаться от цитирования и просто экранировать специальные символы оболочки напрямую:

rename -n s/Programmer/Programmer\'s\ File/ *.txt
2
ответ дан 3 January 2021 в 22:46

Другие вопросы по тегам:

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