Удалите префиксы из имен файлов

Взгляните на Splunk. Можно загрузить версию бесплатно - по крайней мере, для рытья в пару файлов журнала для Вас. Это поможет Вам управлять своими файлами журнала и также знать то, что продолжается в Вашей системе. Это быстро для установки.

9
10.08.2012, 17:10
2 ответа
for file in * ; do
    echo mv -v "$file" "${file#*_}"
done

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

"${file#*_}"

обычная функция замены в оболочке. Это удаляет все символы перед первым _ символ (включая сам символ). Для получения дополнительной информации посмотрите здесь.

18
27.01.2020, 20:04
  • 1
    Могли Вы объяснять, что точно происходит в "${file#*_}"? –  Pieter van Niekerk 10.08.2012, 16:23
  • 2
    , я добавил объяснение к своему ответу. –  rush 10.08.2012, 16:31

Можно использовать инструмент rename для этого:

rename "s/.*_//" *

Если Вы добавляете -n это ничего не переименует и просто покажет Вам, что обошлось бы без -n.

В ответ на комментарий порыва: мой rename на самом деле ссылка на prename поставленный с Debian и Ubuntu perl пакет.

7
27.01.2020, 20:04
  • 1
    Отметьте, это rename не всегда то же в различных системах, и иногда его синтаксис может отличаться. –  rush 10.08.2012, 16:34
  • 2
    Автор вопроса теперь добавил, что использует Солярис. Таким образом, это переименовывает команду (который характерен для Debian, и производные) не доступно ему. –  Gilles 'SO- stop being evil' 11.08.2012, 01:34
  • 3
    ..., если ему не удается создать его из источника. –  sendmoreinfo 17.05.2013, 08:47
  • 4
    @Gilles perl-rename нисколько не характерно для Debian. Это просто не называют rename но perl-rename или prename в других дистрибутивах. Это должно всегда быть в repos, хотя и каждый установлен с жемчугом также. –  terdon♦ 27.04.2017, 14:06
  • 5
    @terdon командой для переименования файлов, основное использование которых является выражением жемчуга, не характерно для Debian. Такая команда, названная rename и вероятно быть установленным, явно не запрашивая пакета, который не называют просто rename, характерно для Debian. Другие дистрибутивы Linux называют команду prename или perl-rename избегать беспорядка с util-linux rename и не связывайте его пакетом жемчуга, и я не знаю ни о каком Unix не-Linux, который поставляет его под именем rename или это поставляет его в стандартной установке под любым именем. опечатки –  Gilles 'SO- stop being evil' 27.04.2017, 14:18

Теги

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