- Перевести названия кучи файлов в нижний регистр
- Re: Перевести названия кучи файлов в нижний регистр
- Re: Перевести названия кучи файлов в нижний регистр
- Re: Перевести названия кучи файлов в нижний регистр
- Re: Перевести названия кучи файлов в нижний регистр
- Re: Перевести названия кучи файлов в нижний регистр
- 🐧 Преобразование в верхний или нижний регистр на Linux
- Использование команды TR для преобразования регистра
- Использование SED для преобразования регистра
- Использование AWK для преобразования регистра
- Преобразование регистра с помощью символов в Bash
- Пример 1
- Пример 2:
- Пример 3:
- Заключение
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Изменение регистра символов в командной строке Linux
- Использование tr
- Использование awk
- Использование sed
- Управление текстом в файле
- Изменение регистра только первой буквы.
- Преобразование верхнего регистра в нижний регистр имен файлов
- Преобразование верхнего регистра в нижний регистр
- Преобразуйте его в скрипт
- Как переименовать все папки и файлы в нижний регистр в Linux?
- Преобразовать в нижний регистр
- Преобразовать в верхний регистр
- Другие опции
Перевести названия кучи файлов в нижний регистр
Есть файлики вида, скажем
FILE01A.WWW (имена могут разниться или вообще цифр не содержать).
Лежат в одном каталоге. Их больше двух тысяч.
Как бы их перевести из верхнего регистра в нижний.
Не руками же.
Re: Перевести названия кучи файлов в нижний регистр
Mozhet tebe pomozhet libo «sed» libo «awk». Hotja est pod vindu proga dlja takih vot del.. Zavtra s raboty tebe skazh kak ona nazyvaetsja.
Re: Перевести названия кучи файлов в нижний регистр
Запускаешь mc, выбираешь все файлы, жмешь F6 и в поле указываешь
«\L*» и все твои имена файлов приведуться в нижний регист.
Если просто в консоли, то можно сделать в одну строку следущее
find / -print | while read x ; do mv $x $(echo $x | tr ‘A-Z’ ‘a-z’); done
man tr вообщем тебе поможет.
Re: Перевести названия кучи файлов в нижний регистр
for i in *; do mv $i `echo $i| awk ‘
Re: Перевести названия кучи файлов в нижний регистр
У меня скриптик на перле есть, если надо то мыло оставь
Re: Перевести названия кучи файлов в нижний регистр
Вопрос к McMCC: при использовании mc, т.е. «\L*», двойные кавычки надо набирать или это только для форума (типа цитаты)?
Источник
🐧 Преобразование в верхний или нижний регистр на Linux
В Linux существует множество способов преобразования строки в верхний или нижний регистр.
Наиболее часто используемыми командами для изменения регистра являются tr, sed и awk.
Tr – самая простая команда для этой задачи.
В Bash 4 есть определенные символы, которые позволяют преобразовать регистр строки.
В этом руководстве мы узнаем, как преобразовать строку в верхний и нижний регистр в системах Linux.
Использование команды TR для преобразования регистра
Команда tr используется для перевода и удаления символов.
С ее помощью можно преобразовать строку или содержимое файла в верхний или нижний регистр.
Она очень часто используется в скриптах bash.
[:upper:] или [A-Z] – обозначает верхний регистр
[:lower:] или [a-z] – обозначает нижний регистр.
Чтобы преобразовать любую строку из верхнего регистра в нижний, введите:
Чтобы преобразовать любую строку из нижнего регистра в верхний, введите:
Например, чтобы преобразовать каждую букву в строке ”welcome” в заглавную, введите:
Например, можно использовать команду tr в скриптах bash для преобразования строки в нижний регистр
Чтобы преобразовать содержимое текстового файла с именем file.txt из нижнего регистра в верхний, выполните следующие действия.
И наоборот, чтобы преобразовать содержимое файла в нижний регистр, введите
Использование SED для преобразования регистра
Команда Sed используется в Linux для разбора и преобразования текста.
С помощью sed можно преобразовать регистр строки.
Используя sed, чтобы преобразовать строку в верхний регистр, введите
a-z] – это регулярное выражение, которое будет соответствовать строчным буквам. \U& используется для замены строчных букв на заглавные.
Теперь перейдем на строчные буквы, используя следующую команду:
[A-Z] – это регулярное выражение, которое будет соответствовать заглавным буквам. \L& используется для замены прописных букв на строчные.
Чтобы преобразовать текст из файла в верхний регистр с помощью инструмента командной строки sed, мы используем следующий шаблон:
Можно также использовать выражение ‘s/.*/\L&/g’ для того же самого.
Использование AWK для преобразования регистра
Команда awk использует функции tolower и toupper для преобразования регистра строки.
Чтобы преобразовать строку в верхний регистр, введите
Чтобы преобразовать все содержимое текстового файла с именем file.txt в верхний регистр, используйте:
Аналогично для преобразования в нижний регистр используйте:
Преобразование регистра с помощью символов в Bash
Начиная с версии 4 Bash, появилась новая возможность преобразования регистра строки.
- Преобразует первый символ любой строки в верхний регистр ^
- Преобразует всю строку в верхний регистр ^^
- Преобразует первый символ строки в строчный регистр ,
- Преобразует всю строку в строчный регистр. ,,
Символы Bash для преобразования регистра строк
Пример 1
Преобразование первого символа строки с помощью символа ^:
Пример 2:
Преобразование всей переменной bash в верхний регистр с помощью символа ^^:
Пример 3:
Преобразование в нижний регистр с помощью символа .
Заключение
В этой статье мы узнали, как конвертировать в прописные или строчные буквы в Linux.
Если у вас возникли вопросы, мы будем рады прояснить их для вас.
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Изменение регистра символов в командной строке Linux
3 минуты чтения
Преобразование текста между прописными и строчными буквами может быть очень утомительным, особенно если вы хотите избежать непреднамеренных ошибок в написании. К счастью, Linux предоставляет несколько команд, которые могут сделать эту работу очень простой.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Существует много способов изменить текст в командной строке Linux с нижнего на верхний регистр и наоборот. На самом деле, у вас есть впечатляющий набор команд на выбор. В этой статье рассматриваются наиболее лучшие команды для работы.
Использование tr
Команда tr (translate) является одной из самых простых в использовании в командной строке или скрипте. Если у вас есть строка, которая должна быть прописной, вы просто передаете ее через команду tr , как в примере:
Ниже приведен пример использования такого рода команд в скрипте, когда необходимо, чтобы весь текст, добавляемый в файл, находится в верхнем регистре:
Перестановка местами параметров [: upper:] [: lower:] переводит текст в нижний регистр:
Аналогично, вы можете использовать эту команду для преобразования символов A-Z в a-z:
Использование awk
Команда awk позволяет сделать то же самое, что и команда tr . Но здесь применяются опции toupper и tolower . Команда в сценарии, показанном в предыдущем примере, может быть выполнена следующим образом:
Обратное переключение на нижний регистр будет выглядеть следующим образом:
Использование sed
Команда sed (stream editor) также отлично справляется с переключением между верхним и нижним регистром. Эта команда будет иметь тот же эффект, что и у двух предыдущих, показанных выше.
Для переключения с верхнего на нижний регистр просто необходимо заменить символ U в конце строки символом L .
Управление текстом в файле
Awk и sed также позволяют изменять регистр текста для целых файлов. Для изменения регистра текста целого файла просто выполните такую команду с указанным именем файла:
Если вы хотите перезаписать содержимое файла, а не просто отображать его содержимое в нижнем регистре, вам необходимо сделать это:
Однако, внося изменения с помощью команды sed , можно избежать последний шаг awk , потому что sed может редактировать файл «на месте», как показано ниже в примере, оставляя файл нетронутым, но текст преобразовался в нижний регистр:
Изменение регистра только первой буквы.
Чтобы сделать прописными буквами только первые буквы слов в строках, выполните следующие команды:
Эта команда преобразует первые буквы в заглавные, и не изменит остальные буквы.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник
Преобразование верхнего регистра в нижний регистр имен файлов
Во многих случаях предпочтительнее иметь строчные имена файлов и каталогов. Переименование по одному — очень тяжелая работа. Работа становится более сложной, особенно при наличии сотен или тысяч файлов. Но это не означает, что это невозможно или что нет способов сделать это полностью быстрым и автоматизированным способом.
Но помимо чистой эстетики или предпочтений каждого пользователя, иногда речь идет о технических проблемах, поскольку некоторые приложения не могут работать с определенными именами, написанными заглавными буквами и их нужно преобразовать. Когда вы сталкиваетесь с одним из этих приложений, возможно, вы долгое время накапливали файлы с разными именами, и вернуться назад становится сложно. Но не волнуйтесь, у него есть простое решение, как я покажу вам в этом уроке .
Преобразование верхнего регистра в нижний регистр
Первое, что вы должны знать, это то, что следующая команда преобразует все прописные в строчные, в том числе, если в этом каталоге есть подкаталоги. Поэтому, если вы не хотите, чтобы все они были строчными, просто сделайте это в определенном каталоге, или он все конвертирует за вас. Мне это кажется важным, чтобы в дальнейшем у вас не было проблем и имена, которые вы не хотели преобразовывать в нижний регистр, преобразовывались.
С другой стороны, вам нужно установить программу переименования. Если он у вас не установлен, используйте диспетчер пакетов вашего дистрибутива, чтобы легко установить его. Однако, как правило, он должен быть установлен, поэтому нет необходимости устанавливать его во всех случаях. Этот инструмент поможет вам изменить несколько имен одновременно, вместо того, чтобы использовать обычный mv для изменения имени одно за другим .
Еще одна вещь, которую вам нужно знать, прежде чем приступить к работе, заключается в том, что если при преобразовании из верхнего регистра в нижний регистр встречается с тем же именем, он не будет преобразован. Вы уже знаете, что в Linux есть с учетом регистра в вашей FS, поэтому он чувствителен к регистру. Это означает, что если у вас есть файл с именем Hello2 и HELLO2, система их различает. Но, конечно . когда они перейдут в нижний регистр, они оба будут называться hello2, а это невозможно. Следовательно, он выдаст сообщение об ошибке и не преобразует его.
После этого у вас есть все, что вам нужно знать, и мы можем начать преобразовывать имена из верхнего регистра в нижний. В общая команда Это будет следующее, и вы можете изменить его так, чтобы он указывал на нужный каталог:
Debes заменять по имени каталога или пути к каталогу, который вы хотите сделать строчными буквами. Например, как в примере, который я показываю вам на изображении, это Test, но это также может быть любой другой. Для новичков скажите, что под путем я подразумеваю путь, когда он не находится непосредственно в каталоге, в котором вы сейчас находитесь. Например, если вы находитесь в
/, но хотите действовать в / home / user / Downloads.
Преобразуйте его в скрипт
Чтобы облегчить преобразование верхнего и нижнего регистра, вы можете создать скрипт пусть он сделает это за вас, и вам не придется вводить указанную выше команду каждый раз, когда вам понадобится преобразование. Это очень полезно для тех, кто постоянно передает имена. Кроме того, если вы поместите его в любой из путей переменной среды $ PATH, вы можете выполнить его, просто вызвав его имя, без необходимости иметь его в том же каталоге, где вы работаете, или указывать полный путь .
серия шаги, которые необходимо выполнить для создания скрипта конвертера являются:
- Во-первых, это перейти в каталог / bin чтобы включить сценарий туда и, таким образом, использовать его как любую другую команду, просто вызывая его имя из терминала.
- Затем творить с нано, или в вашем любимом текстовом редакторе файл со сценарием и назовите его как хотите. Я назову это маютомину:
- Внутри nano вы должны вставить следующий текст для код этого скрипта из bash:
- Сейчас сохраните файл используя комбинацию клавиш Ctrl + O и выйдите, нажав Ctrl + X. У вас уже есть файл mayutominu.sh, созданный с помощью сценария, следующее: дать разрешение исполнения:
- Наконец-то ты понял готов к использованию. Как ты делаешь это? Что ж, продолжая тот же пример из предыдущего раздела, если вы хотите изменить имена тестового каталога с верхнего регистра на нижний регистр, вы можете сделать следующее:
- Вы знаете, если вам нужно указать полный путь или путь, вы также можете, если каталог находится не в текущей позиции. Например:
Надеюсь, это помогло вам, вы знаете, что любые вопросы или предложения, вы можете оставлять свои комментарии.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Любители Linux » GNU / Linux » Системное администрирование » Преобразование верхнего регистра в нижний регистр имен файлов
Источник
Как переименовать все папки и файлы в нижний регистр в Linux?
Я должен рекурсивно переименовать полное дерево папок, чтобы нигде не было заглавных букв (это исходный код C++, но это не должно иметь значения). Бонусные баллы за игнорирование CVS и SVN контрольных файлов/папок. Предпочтительным способом будет сценарий оболочки, поскольку оболочка должна быть доступна на любом компьютере с Linux.
Были некоторые веские аргументы о деталях переименования файла.
Я думаю, что файлы с одинаковыми строчными именами должны быть перезаписаны, это проблема пользователя. При проверке в файловой системе, в которой не учитывается регистр, первая также будет перезаписана первой.
Я хотел бы рассмотреть символы A-Z и преобразовать их в a-z, все остальное просто вызывает проблемы (по крайней мере, с исходным кодом).
Сценарий необходим для запуска сборки в системе Linux, поэтому я думаю, что изменения в файлах управления CVS или SVN должны быть опущены. В конце концов, это просто проверка заказа. Может быть, «экспорт» более уместен.
Краткая версия с использованием команды «rename» .
Это позволяет избежать проблем с переименованием каталогов перед файлами и попыткой перемещения файлов в несуществующие каталоги (например, «A/A» в «a/a» ).
Или более подробная версия без использования «rename» .
Последнее обеспечивает большую гибкость с помощью команды перемещения (например, «svn mv» ).
меньше все еще мне очень нравится
В нечувствительных к регистру файловых системах, таких как HFS + в OS X, вы захотите добавить флаг -f
Просто попробуйте следовать, если вам не нужно заботиться об эффективности.
Большинство ответов выше опасны, потому что они не имеют дело с именами, содержащими нечетные символы. Ваша самая безопасная ставка для такого рода вещей — использовать опцию find -print0, которая завершит имена файлов ascii NUL вместо\n. Здесь я представляю этот скрипт, который изменяет только файлы, а не имена каталогов, чтобы не перепутать find.
Я протестировал его, и он работает с именами файлов, содержащими пробелы, всевозможные кавычки и т.д. Это важно, потому что, если вы запускаете от имени root один из тех других сценариев в дереве, который включает файл, созданный с помощью:
Это работает, если у вас уже есть или настроена команда переименовать (например, через brew install в Mac):
Человек, которого вы, ребята, любите усложнять вещи ..
Это работает в CentOS/Redhat или других дистрибутивах без Perl-скрипта rename :
(в некоторых дистрибутивах команда rename по умолчанию взята из util-linux, и это другой несовместимый инструмент)
Первоначальный вопрос касался игнорирования каталогов SVN и CVS, что можно сделать, добавив -Prune к команде find. Например, игнорировать CVS:
[править] Я попробовал это, и встраивание перевода в нижний регистр в находку не сработало по причинам, которые я на самом деле не понимаю. Итак, измените это на:
Вот мое неоптимальное решение с использованием сценария bash Shell:
Правка: я сделал некоторые изменения на основе предложений до сих пор. Теперь все папки переименованы правильно, mv не задает вопросов, когда разрешения не совпадают, а папки CVS не переименовываются (к сожалению, контрольные файлы CVS внутри этой папки все еще переименовываются).
Правка: Поскольку «find -depth» и «find | sort -r» оба возвращают список папок в порядке, пригодном для переименования, я предпочел использовать «-depth» для поиска папок.
Использование исправления имени Ларри Уолла
это так же просто, как
(где исправить, конечно, сценарий выше)
Это небольшой скрипт Shell, который делает то, что вы просили:
Обратите внимание на действие -depth в первой находке.
Ранее опубликованное будет отлично работать из коробки или с некоторыми изменениями для простых случаев, но есть некоторые ситуации, которые вы можете принять во внимание перед запуском пакетного переименования:
Что должно произойти, если у вас есть два или более имен на одном уровне в иерархии путей, которые отличаются только регистром, например, ABCdef , abcDEF и aBcDeF ? Должен ли сценарий переименования прерваться или просто предупредить и продолжить?
Как вы определяете нижний регистр для не-US-ASCII имен? Если такие имена могут присутствовать, следует ли сначала выполнить проверку и исключить проход?
Если вы выполняете операцию переименования на рабочих копиях CVS или SVN, вы можете повредить рабочую копию, если измените регистр имен файлов или каталогов. Должен ли скрипт также находить и корректировать внутренние административные файлы, такие как .svn/records или CVS/Entries?
Установите пакет rename ,
Эта команда находит все файлы с расширением *.py и преобразует имена файлов в нижний регистр.
В этой ситуации я хотел бы использовать python, чтобы избежать оптимистичного предположения путей без пробелов и косых черт. Я также обнаружил, что python2 , как правило, устанавливается в большем количестве мест, чем rename .
В OSX mv -f показывает ошибку «тот же файл», поэтому я переименовываю дважды.
find -depth печатает каждый файл и каталог с содержимым каталога, напечатанным перед самим каталогом. $
Не портативный, только Zsh, но довольно лаконичный.
Сначала убедитесь, что zmv загружен.
Также убедитесь, что extendedglob включен:
Для рекурсивных строчных файлов и каталогов, где имя не являетсяCVS.
Я не пробовал более сложные сценарии, упомянутые здесь, но ни одна из версий для командной строки не работала для меня на моем Synology NAS. rename недоступен, и многие из вариантов find терпят неудачу, потому что кажется, что он придерживается более старого имени уже переименованного пути (например, если он находит ./FOO , за которым следует ./FOO/BAR , переименование ./FOO в ./foo все равно продолжит перечислять ./FOO/BAR , хотя этот путь больше не действителен). Выше команда работала у меня без проблем.
Далее следует объяснение каждой части команды:
Он найдет любой файл из текущего каталога (замените . на любой каталог, который вы хотите обработать), используя поиск в глубину (например, он будет перечислять ./foo/bar перед ./foo ), но только для файлов, которые содержат заглавные буквы. Фильтр -name применяется только к базовому имени файла, а не к полному пути. Так что это будет список ./FOO/BAR , но не ./FOO/bar . Это нормально, так как мы не хотим переименовывать ./FOO/bar . Мы хотим переименовать ./FOO , но это будет упомянуто позже (вот почему -depth важен).
Сама по себе эта команда особенно полезна для поиска файлов, которые вы хотите переименовать. Используйте это после полной команды переименования, чтобы искать файлы, которые все еще не были заменены из-за конфликтов имен файлов или ошибок.
Эта часть читает файлы, выводимые find , и форматирует их в команде mv с помощью регулярного выражения. Параметр -n останавливает sed от печати ввода, а команда p в регулярном выражении поиска и замены выводит замененный текст.
Само регулярное выражение состоит из двух захватов: части до последнего/(которая является каталогом файла) и самого имени файла. Каталог оставлен без изменений, но имя файла преобразуется в нижний регистр. Таким образом, если find выводит ./FOO/BAR , он станет mv -n -v -T ./FOO/BAR ./FOO/bar . Параметр -n mv гарантирует, что существующие строчные файлы не будут перезаписаны. Опция -v заставляет mv выводить каждое изменение, которое оно делает (или не делает — если ./FOO/bar уже существует, он выводит что-то вроде ./FOO/BAR -> ./FOO/BAR , отмечая, что никаких изменений не было сделано). Здесь очень важен -T — он рассматривает целевой файл как каталог. Это гарантирует, что ./FOO/BAR не будет перемещен в ./FOO/bar , если этот каталог существует.
Используйте это вместе с find для генерации списка команд, которые будут выполняться (удобно, чтобы проверить, что будет сделано, фактически не делая этого)
Это довольно очевидно. Он направляет все сгенерированные команды mv в интерпретатор Shell. Вы можете заменить его на bash или любую оболочку по своему вкусу.
Сначала переименуйте каталоги снизу вверх sort -r (где -depth недоступен), затем файлы . Затем grep -v/CVS вместо find . — Prune потому что это проще . Для больших каталогов, для f в . может переполнить некоторые буферы оболочки . Использовать find . | пока читаешь чтобы избежать этого.
И да, это будет забивать файлы, которые отличаются только в случае .
Если вы используете Arch Linux , вы можете установить rename package из AUR , который предоставляет команду renamexm как исполняемый файл /usr/bin/renamexm и страницу manual вместе с ней.
Это действительно мощный инструмент для быстрого переименования файлов и каталогов.
Преобразовать в нижний регистр
Преобразовать в верхний регистр
Другие опции
Вы можете получить образец файла Developers.mp3 из здесь , если это необходимо;)
Мне нужно было сделать это на установке Cygwin в Windows 7 и обнаружил, что я получил синтаксические ошибки с предложениями из вышеупомянутого, которые я попробовал (хотя я, возможно, пропустил рабочий вариант), однако это решение прямо из форумов ubutu работал из банки 🙂
(NB Я ранее заменил пробел с подчеркиванием, используя
Простейший подход, который я нашел в MacOSX, заключался в использовании пакета переименования из http://plasmasturm.org/code/rename/ :
—force Rename, даже если файл с именем назначения уже существует.
—lower-case Конвертировать имена файлов в нижний регистр.
—nows Заменить все последовательности пробелов в имени файла символами подчеркивания.
Длительный, но «Работает без сюрпризов и без установок»
Этот скрипт обрабатывает имена файлов с пробелами, кавычками, другими символами необычно и Unicode, работает с нечувствительными к регистру файловыми системами и большинством сред Unix-y, в которых установлены bash и awk (т.е. почти все). Он также сообщает о коллизиях, если таковые имеются (оставляя имя файла в верхнем регистре) и, конечно, переименовывает как файлы и каталоги, так и работает рекурсивно. Наконец, он легко адаптируется: вы можете настроить команду find для выбора нужных вам файлов/каталогов и настроить awk для выполнения других манипуляций с именами. Обратите внимание, что под «дескрипторами Unicode» я подразумеваю, что он действительно преобразует их регистр (не игнорируйте их как ответы, использующие tr ).
Рекомендации
Мой сценарий основан на этих превосходных ответах:
Источник