Удалить первую часть имен файлов

У меня есть каталог, полный файлов foo_num.txt. Я хотел бы переименовать все в num.txt (то есть удалить часть "foo_"). Могу ли я сделать это в одну строку?

4
задан 10 August 2015 в 12:19

2 ответа

Поскольку Ваша первая часть разделяется _, я предлагаю Вас

rename 's/.*?_//' *.txt

? средства не жадный , поэтому только первое вхождение _ будет заменено.

Пример

$ ls -laog
total 4280
drwxrwxr-x  2 4329472 Aug 10 13:05 .
drwx------ 55   20480 Aug 10 12:54 ..
-rw-rw-r--  1       0 Aug 10 13:05 foo_1_1.txt
-rw-rw-r--  1       0 Aug 10 13:05 foo_2_2.txt
-rw-rw-r--  1       0 Aug 10 13:05 foo_3_3.txt

$ rename 's/.*?_//' *.txt

$ ls -laog
total 4280
drwxrwxr-x  2 4329472 Aug 10 13:06 .
drwx------ 55   20480 Aug 10 12:54 ..
-rw-rw-r--  1       0 Aug 10 13:05 1_1.txt
-rw-rw-r--  1       0 Aug 10 13:05 2_2.txt
-rw-rw-r--  1       0 Aug 10 13:05 3_3.txt
<час>

Для замены всего использования случаев

rename 's/.*_//' *.txt

Пример

$ ls -laog
total 4280
drwxrwxr-x  2 4329472 Aug 10 13:08 .
drwx------ 55   20480 Aug 10 12:54 ..
-rw-rw-r--  1       0 Aug 10 13:08 foo_1_1.txt
-rw-rw-r--  1       0 Aug 10 13:08 foo_2_2.txt
-rw-rw-r--  1       0 Aug 10 13:08 foo_3_3.txt

$ rename 's/.*_//' *.txt

$ ls -laog
total 4280
drwxrwxr-x  2 4329472 Aug 10 13:09 .
drwx------ 55   20480 Aug 10 12:54 ..
-rw-rw-r--  1       0 Aug 10 13:08 1.txt
-rw-rw-r--  1       0 Aug 10 13:08 2.txt
-rw-rw-r--  1       0 Aug 10 13:08 3.txt
1
ответ дан 10 August 2015 в 22:19
  • 1
    Hrrrmmmmm... поэтому, как Вы знаете, я абсолютно ненависть UEFI, но компьютер I' m загружающий это на сказанном это, если я включил " Boot" Прежней версии; это было бы неспособно загрузить Windows 8. Так, я просто позволяю ему, EFI загружается, так как это был живой USB так или иначе... sooooooo..., что я должен сделать? – Android Dev 2 November 2016 в 09:15

Если Вы не хотите беспокоиться для циклов в Bash, Вы могли бы хотеть использовать rename программа:

rename "s/foo_//" *.txt

первым аргументом является выражение Perl, определяющее строковое заменяющее правило. В этом случае: [s] заменяют "нечто _" с "".

второй аргумент фильтрует файлы, которые Вы хотите переименовать.

5
ответ дан 10 August 2015 в 22:19

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

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