Добавить письмо перед предыдущим именем в папке. (Переименовать) [dублировать]

Первая команда:

cat /var/log/dpkg.log | grep " \install\ "

Как заметил @ByteCommander, может быть опечатка, и команда должна быть

cat /var/log/dpkg.log | grep "\ install\ "

Это соответствует строке install с конечным и ведущим пробелом. Это также может быть достигнуто с помощью grep -w "install". Кроме того, \ не требуется, когда вы используете кавычки.

Первая команда:

cat /var/log/dpkg.log | grep install

Эта команда также соответствует строкам, которые содержат install.

установить содержимое тестового файла:

foo
bar
foobar
foo bar

Выполнить:

cat file1.txt | grep foo
foo
foobar
foo bar

cat file1.txt | grep -w foo
foo
foo bar

cat file1.txt | grep "foo "
foo bar
1
задан 7 June 2017 в 00:50

6 ответов

Есть много способов, мой собственный выбор был бы «for» loop:

for f in *.wav ; do mv "$f" "A$f" ; done

Это просто и легко модифицируется для других нужд ...

3
ответ дан 18 July 2018 в 12:02

Используя rename:

rename 's/([0-9]+).wav/A\1.wav/' *.wav s/SEARCH-FOR/REPLACE-WITH/ within-this-files ([0-9]+) удерживает секцию номера, мы можем использовать ее снова, используя \1. A\1.wav: A + (нумерованный раздел) + .wav
2
ответ дан 18 July 2018 в 12:02

Пользователь prename:

$ prename -nv 's/^(.*)$/A$1/' *.wav 1.wav renamed as A1.wav 2.wav renamed as A2.wav 3.wav renamed as A3.wav

Способ чтения:

*.wav позволяет оболочке расширять wild card до списка всех файлов, которые end с .wav. Когда оболочка выполнит полную команду, компьютер увидит prename -nv 's/^(.*)$/A$1/' 1.wav 2.wav 3.wav и т. Д. Как действительную команду. [F6] на самом деле является s/PATTERN/REPLACEMENT регулярным выражением с группировкой (.*), что позволяет сгруппировать все имя файла с начала ^ до конца $ и ссылаться на него как $1.

Обратите внимание, что переключатели -nv предназначены для подробного -v и сухого хода -n. Если вы довольны тестовым прогоном, удалите -n, чтобы применить фактическое переименование.

3
ответ дан 18 July 2018 в 12:02

Есть много способов, мой собственный выбор был бы «for» loop:

for f in *.wav ; do mv "$f" "A$f" ; done

Это просто и легко модифицируется для других нужд ...

3
ответ дан 24 July 2018 в 19:54

Используя rename:

rename 's/([0-9]+).wav/A\1.wav/' *.wav s/SEARCH-FOR/REPLACE-WITH/ within-this-files ([0-9]+) удерживает секцию номера, мы можем использовать ее снова, используя \1. A\1.wav: A + (нумерованный раздел) + .wav
2
ответ дан 24 July 2018 в 19:54

Пользователь prename:

$ prename -nv 's/^(.*)$/A$1/' *.wav 1.wav renamed as A1.wav 2.wav renamed as A2.wav 3.wav renamed as A3.wav

Способ чтения:

*.wav позволяет оболочке расширять wild card до списка всех файлов, которые end с .wav. Когда оболочка выполнит полную команду, компьютер увидит prename -nv 's/^(.*)$/A$1/' 1.wav 2.wav 3.wav и т. Д. Как действительную команду. [F6] на самом деле является s/PATTERN/REPLACEMENT регулярным выражением с группировкой (.*), что позволяет сгруппировать все имя файла с начала ^ до конца $ и ссылаться на него как $1.

Обратите внимание, что переключатели -nv предназначены для подробного -v и сухого хода -n. Если вы довольны тестовым прогоном, удалите -n, чтобы применить фактическое переименование.

3
ответ дан 24 July 2018 в 19:54
  • 1
    Что делать, если мне нужно переименовать его как 1A.wav и 2A.wav и т. Д. Я пробовал. & Quot; prename -nv 's /^(.*)$/$ 1A /' * .wav & quot; он переименовывает, как это 1.wavA и 2.wavA – Adnan Ali 7 June 2017 в 19:51
  • 2
    @AdnanAli Да, потому что ^(.*) делает все имя обработанным как $1. Таким образом, вы буквально придерживаетесь A в конце всего имени. То, что вы хотите сделать, это использовать дополнительную группировку, сделать $1 быть все до .wav и сделать .wav be $2. Например: prename -nv 's/^(.*)(.wav)$/$1A$2/' *.wav Итак, здесь сначала (.*) будет $1 и все до .wav. Вторая группа (.wav) - $2 – Sergiy Kolodyazhnyy 7 June 2017 в 20:06

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

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