Руководство по допиливанию для новичка- от новичка

Автор el guahiro, июля 26, 2015, 20:02:01

« предыдущая - следующая »

el guahiro

Вторая часть скрипта:
[ -d "$f" ] && rename 's/\([^\)]\)//gi' ./**/* ;  rename "s/\.PDF/\.pdf/gi" ./**/* ; rename "s/\.DOCX/\.docx/gi" ./**/* ; rename "s/\.DOC/\.doc/gi" ./**/* ; rename "s/\.XLS/\.xls/gi" ./**/* ; rename "s/\.XLSX/\.xlsx/gi" ./**/* ; rename "s/\s{2}/ /gi" ./**/* ; rename 's/Письмо «/e-mail /gi' ./**/* ; rename "s/ _|ООО |[{]|[}]|[(]|[)]| Стро. Комп.|Для рассмотр. Правдина И.Ю. |Горьковс О назнач.|-- Яндекс.Почта| ---- |--|Янд| екс.Почта|конец резолюции |Для работы. |Без темы|ЕАСД|Широков |ОАО |хода |Хабр|ович//gi" ./**/* ; rename "s/Тех. номер|Тех. номер_/тн /gi" ./**/* ; rename "s/рабочей группы|рабочая группа/РГ/gi" ./**/* ; rename "s/участке/уч-ке/gi" ./**/* ; rename "s/ажирских|асной|асного|асных|асность/./gi" ./**/* ; rename "s/ [.]|овлению/./gi" ./**/* ; rename "s/январь |января /01./gi" ./**/* ; rename "s/февраль |февраля /02./gi" ./**/* ; rename "s/март |марта /03./gi" ./**/* ; rename "s/апрель |апреля /04./gi" ./**/* ; rename "s/май |мая /05./gi" ./**/* ; rename "s/июнь |июня /06./gi" ./**/* ; rename "s/июль |июля /07./gi" ./**/* ; rename "s/август |августа /08./gi" ./**/* ; rename "s/сентябрь |сентября /09./gi" ./**/* ; rename "s/октябрь |октября /10./gi" ./**/* ; rename "s/ноябрь |ноября /11./gi" ./**/* ; rename "s/декабрь |декабря /12./gi" ./**/* ; rename "s/ г. / /gi" ./**/* ; rename "s/в срок /до /gi" ./**/* ; rename "s/к ИСХ/исх/gi" ./**/* ; rename "s/к исх/исх/gi" ./**/* ; rename "s/изменений/изм-ний/gi" ./**/* ; rename "s/инвестиционным программам/инвестпрограммам/gi" ./**/* ; rename "s/ТЕХНИЧЕСКИЕ УСЛОВИЯ/ТУ/gi"./**/* ; rename "s/инвестиционной программе/инвестпрограмме/gi" ./**/* ; rename "s/документации/док-ции/gi" ./**/* ; rename "s/железнодорожных|железнодорожный|железнодорожные|железнодорожного|железнодорожной/жд/gi" ./**/* ; rename "s/инвестиционной /инвест/gi" ./**/* ; rename 's/|«|»|"|,|№|Fwd|поручение|Поручение|Яндекс.Почта|:|//gi' ./**/* ; rename 's/ -- / /gi' ./**/* ; rename "s/\s{2}/ /gi" ./**/* ; rename "s/Горьковской региональной дирекции железнодорожных вокзалов/ГРДЖВ/gi" ./**/* ; rename "s/[(]|[)]//gi" ./**/* ; rename "s/одных |одного |ержден |ановлением |ановление |инистрации |ативный |ании |олу |оль |арной |Отправка |иантам |отовки |оянию |аться|ении |амент |амента |онной |онная |ерческие |аботки |аментом |ойству |иков |ициях |ижнего |иция |авка |авки |уемом |уратуру |осам |ействия |отрении |ально |ентов |овах |осу |оительной |авлены |отовьте |ектированной |ерного |остранение |елений |ений|остранением |ектированная |ортную |атура |атуры |отовке |ователя |ионера |орта |орт |одок |отовить |антии |ованную |одимо |орма |уникаций |ества |имого |енно |ивает |ерных |аменте |ениях |ении |итории |ытия |ожно |анции |анция |авским |авскими |укции |адскими |ажними |азскими |асно |азы |азам |айскими |ённым |уемым |енениями |альними |альскими |ивов |анними |анскими |ованной |ившим |ивший |ействие |арскими |атскими |ейскими |ельними |одимого |вами |ельскими |енними |ованиях |ования |енскими |ентальними |ерскими |ескими |иальними |ийскими |инскими |аботке |ионними |ирскими |аммы |ительними |ическими |ними |ованними |овскими |ельно |исью |одскими |ольскими |орскими |скими |еской |ской |ческими |авского |адского |ажного |азского |айского |ального |альского |анного |анского |арского |атского |ейского |ельного |ельского |енного |енского |ентального |ерского |еского |иального |огоского |инского |ионного |ирского |ительного |ического |ного |ованного |овского |одского |ольского |орского |ского |ской |асти |ческого |адским |ажным |азским |айским |альным |альским |анным |анским |арским |атским |ейским |ельным |ельским |енным |енским |ентальным |ерским |еским |иальным |ийским |инским |ионным |ирским |ительным |ельной |ическим |ным |ованным |овским |одским |ольским |орским |ским |ском |ческим |авская |адская |ажная |азская |айская |альная |альская |анная |анская |арская |атская |ейская |ельная |ельская |енная |енская |ентальная |ерская |еская |иальная |ийская |инская |ионная |ирская |овом |ительная |ическая |ная |ованная |овская |одская |ольская |орская |ская |ской |ческая |авских |адских |ажных |азских |айских |адки |альных |альских |анных |анских |арских |атских |ейских |ельных |ельских |енных |енских |ентальных |ерских |еских |иальных |ийских |инских |ионных |ирских |ительных |ических |урных |ованных |овских |одских |ольских |орских |ских |скох |ческих |авский |адский |ажный |азский |айский |альный |альский |анный |анский |арский |атский |ейский |ельный |ельский |енный |енский |ентальный |ерский |еский |иальный |ийский |инский |ионный |ирский |ительный |ический |ованный |овский |одский |ольский |орский |ский |ской |ческий |ения |альникам |ить |атам |итарным |ативном |одства |еры |укция |укцию |ований |овить |иалы |овывающие |ени |ойство |озкам |имости |обности |ельство |ельства |ионеров |ики |ители |ала |онов |ормах |аризации |ации |иятия |ору |иятий |юдения |ормы |ика |овка |арами |отать |овку |афии |ание |аниям |ация |ых |ическое |ические |ования |изма |аний |арно |ортная |ортной |ядке|елей |ованию |ому |олю |амма |екса |ального |ике |одственным |иятия |анию |ане |овья |ению |ости |овании |емного |амме |ания |ионную |ионная |иалам |ионном |ацию |оде |ивание |ода |ение |ения |ающих |овое |остей |ное |овке|ора |ый |ости |ского |вной |ые |оянии |овать |иятиям |емы |яция |атель |ылки |ельн[а-я] |ение |авлении |авление |ование |арный |ая |ение |уре /. /gi" ./**/* ; rename "s/одных[.]|уктуры[.]|орте[.]|орту[.]|ядке[.]|ельства[.]|измом[.]|елей[.]|ому[.]|уратура |уратуры |уратура[.]|уратуры[.]|амме[.]|олю[.]|амма[.]|ости[.]|ией[.]|иалам[.]|ионном[.]|ания[.]|ивание[.]|ества[.]|ода[.]|ение[.]|ения[.]|ающих[.]|овое[.]|остей[.]|ное[.]|ора[.]|ый[.]|ости[.]|ского[.]|вной[.]|ые[.]|оянии[.]|овать[.]|ика[.]|атель[.]|ылки[.]|ельная[.]|ение[.]|ытия[.]|ении[.]|ование[.]|арный[.]|ая[.]|ении[.]/./gi" ./**/* ; rename "s/Александра|Алёна|Алеся|Алина|Алиса|Алла|Альбина|Аля|Амалия|Анастасия|Ангелина|Анжела|Анна|Арина|Аврора|Агата|Аделина|Аида|Бажена (Божена)|Белла (Бэлла)|Богдана|Валентина|Валерия|Варвара|Вера|Вероника|Виктория,Виталия|Владислава|Дарья|Диана|Дина|Доминика|Дарина|Ева|Евгения|Екатерина|Елена|Елизавета|Есения|Жанна|Зоя|Злата|Инна|Ирина|Изабелла|Камилла|Карина|Каролина|Катерина|Кира|Клавдия|Клара|Кристина|Ксения|Лариса|Лилия|Лина|Лолита|Любовь|Лидия,Лада|Лана|Марина|Мария|Марта|Марьяна|Мила|Милана|Мирослава|Майя|Маргарита|Марианна|Мия|Надежда|Наталия|Наталья|Ника|Нина|Нелли|Оксана|Олеся|Ольга|Полина|Регина|Рената|Руслана|Светлана|Снежана|Соня|София (Софья)|Станислава|Стелла|Стефания|Татьяна|Теона|Тина|Ульяна|Флора|Элина|Элла|Эльвина|Эльвира|Эмилия|Эмма|Эвелина|Элеонора|Юлия|Юлианна|Ярослава|Александр|Андрей|Алексей|Артемий|Арсений|Артём|Анатолий|Антон|Арсен|Артур|Альберт|Адель|Айдар|Амир|Богдан|Борис|Василий|Валерий|Виталий|Всеволод|Вадим|Виктор|Вячеслав|Владислав|Георгий|Герман|Григорий|Гордей|Глеб|Дмитрий|Давид|Демид|Денис|Данила|Даниил|Данил|Дамир|Даниэль,Егор|Евгений|Елисей|Захар|Илья|Игнат|Иван|Игорь|Ильдар|Кирилл|Константин|Леонид|Лев|Лука|Максим|Михаил|Марк|Макар|Матвей|Мирон|Мирослав|Марат|Марсель|Николай|Назар|Никита|Олег|Одиссей|Платон|Петр|Павел|Роберт|Роман|Родион|Ростислав|Радмир|Руслан|Ринат|Рамиль|Рустам|Степан|Семен|Савелий|Сергей|Савва|Станислав|Святослав|Святогор|Самир|Тимофей|Тихон|Тимур|Тамерлан|Федор|Филипп|Эдуард|Эмиль|Юрий|Ярослав|Яромир|Александровна|Андреевна|Алексеевна|Артемьевна|Арсеньевна|Артёмовна|Анатольевна|Антоновна|Арсеновна|Артуровна|Альбертовна|Аделевна|Айдаровна|Амировна|Богдановна|Борисовна|Васильевна|Валерьевна|Витальевна|Владовна|Владимировна|Всеволодовна|Вадимовна|Викторовна|Вячеславовна|Владиславовна|Георгьевна|Германовна|Григорьевна|Гордеевна|Глебовна|Дмитрьевна|Давидовна|Демидовна|Денисовна|Данилаовна|Данииловна|Даниловна|Дамировна|Даниэль,Егоровна|Евгеньевна|Елисеевна|Захаровна|Ильяовна|Игнатовна|Ивановна|Игоревна|Ильдаровна|Кирилловна|Константиновна|Леонидовна|Левовна|Лукаовна|Максимовна|Михайловна|Марковна|Макаровна|Матвеевна|Мироновна|Мирославовна|Маратовна|Марселевна|Николаевна|Назаровна|Никитаовна|Олеговна|Одиссеевна|Платоновна|Петровна|Павловна|Робертовна|Романовна|Родионовна|Ростиславовна|Радмировна|Руслановна|Ринатовна|Рамилевна|Рустамовна|Степановна|Семеновна| Савельевна|Сергеевна|Савваовна|Станиславовна|Святославовна|Святогоровна|Самировна|Тимофеевна|Тихоновна|Тимуровна|Тамерлановна|Федоровна|Филипповна|Эдуардовна|Эмилевна|Юрьевна|Ярославовна|Яромировна|Яновна|Александрович|Андреевич|Алексеевич|Артемьевич|Арсеньевич|Артёмович|Анатольевич|Антонович|Арсенович|Артурович|Альбертович|Аделевич|Айдарович|Амирович|Богданович|Борисович|Васильевич|Валерьевич|Витальевич|Владович|Владимирович|Всеволодович|Вадимович|Викторович|Вячеславович|Владиславович|Георгиевич|Германович|Григорьевич|Гордеевич|Глебович|Дмитрьевич|Давидович|Демидович|Денисович|Данилович|Даниилович|Данилович|Дамирович|Даниэлевич|Егорович|Евгеньевич|Елисеевич|Захарович|Ильич|Игнатович|Иванович|Игоревич|Ильдарович|Кириллович|Константинович|Леонидович|Львович|Лукич|Максимович|Михайлович|Маркович|Макарович|Матвеевич|Миронович|Мирославович|Маратович|Марселевич|Николаевич|Назарович|Никитович|Олегович|Одиссеевич|Платонович|Петрович|Павелович|Робертович|Романович|Родионович|Ростиславович|Радмирович|Русланович|Ринатович|Рамилевич|Рустамович|Степанович|Семенович| Савельевич|Сергеевич|Саввович|Станиславович|Святославович|Святогорович|Самирович|Тимофеевич|Тихонович|Тимурович|Тамерланович|Федорович|Филиппович|Эдуардович|Эмилевич|Юрьевич|Ярославович|Яромирович|Янович|Александра[.]|Алёна[.]|Алеся[.]|Алина[.]|Алиса[.]|Алла[.]|Альбина[.]|Аля[.]|Амалия[.]|Анастасия[.]|Ангелина[.]|Анжела[.]|Анна[.]|Арина[.]|Аврора[.]|Агата[.]|Аделина[.]|Аида[.]|Бажена (Божена)[.]|Белла (Бэлла)[.]|Богдана[.]|Валентина[.]|Валерия[.]|Варвара[.]|Вера[.]|Вероника[.]|Виктория,Виталия[.]|Владислава[.]|Дарья[.]|Диана[.]|Дина[.]|Доминика[.]|Дарина[.]|Ева[.]|Евгения[.]|Екатерина[.]|Елена[.]|Елизавета[.]|Есения[.]|Жанна[.]|Зоя[.]|Злата[.]|Инна[.]|Ирина[.]|Изабелла[.]|Камилла[.]|Карина[.]|Каролина[.]|Катерина[.]|Кира[.]|Клавдия[.]|Клара[.]|Кристина[.]|Ксения[.]|Лариса[.]|Лилия[.]|Лина[.]|Лолита[.]|Любовь[.]|Лидия,Лада[.]|Лана[.]|Марина[.]|Мария[.]|Марта[.]|Марьяна[.]|Мила[.]|Милана[.]|Мирослава[.]|Майя[.]|Маргарита[.]|Марианна[.]|Мия[.]|Надежда[.]|Наталия[.]|Наталья[.]|Ника[.]|Нина[.]|Нелли[.]|Оксана[.]|Олеся[.]|Ольга[.]|Полина[.]|Регина[.]|Рената[.]|Руслана[.]|Светлана[.]|Снежана[.]|Соня[.]|София (Софья)[.]|Станислава[.]|Стелла[.]|Стефания[.]|Татьяна[.]|Теона[.]|Тина[.]|Ульяна[.]|Флора[.]|Элина[.]|Элла[.]|Эльвина[.]|Эльвира[.]|Эмилия[.]|Эмма[.]|Эвелина[.]|Элеонора[.]|Юлия[.]|Юлианна[.]|Ярослава[.]|Александр[.]|Андрей[.]|Алексей[.]|Артемий[.]|Арсений[.]|Артём[.]|Анатолий[.]|Антон[.]|Арсен[.]|Артур[.]|Альберт[.]|Адель[.]|Айдар[.]|Амир[.]|Богдан[.]|Борис[.]|Василий[.]|Валерий[.]|Виталий[.]|Всеволод[.]|Вадим[.]|Виктор[.]|Вячеслав[.]|Владислав[.]|Георгий[.]|Герман[.]|Григорий[.]|Гордей[.]|Глеб[.]|Дмитрий[.]|Давид[.]|Демид[.]|Денис[.]|Данила[.]|Даниил[.]|Данил[.]|Дамир[.]|Даниэль,Егор[.]|Евгений[.]|Елисей[.]|Захар[.]|Илья[.]|Игнат[.]|Иван[.]|Игорь[.]|Ильдар[.]|Кирилл[.]|Константин[.]|Леонид[.]|Лев[.]|Лука[.]|Максим[.]|Михаил[.]|Марк[.]|Макар[.]|Матвей[.]|Мирон[.]|Мирослав[.]|Марат[.]|Марсель[.]|Николай[.]|Назар[.]|Никита[.]|Олег[.]|Одиссей[.]|Платон[.]|Петр[.]|Павел[.]|Роберт[.]|Роман[.]|Родион[.]|Ростислав[.]|Радмир[.]|Руслан[.]|Ринат[.]|Рамиль[.]|Рустам[.]|Степан[.]|Семен[.]|Савелий[.]|Сергей[.]|Савва[.]|Станислав[.]|Святослав[.]|Святогор[.]|Самир[.]|Тимофей[.]|Тихон[.]|Тимур[.]|Тамерлан[.]|Федор[.]|Филипп[.]|Эдуард[.]|Эмиль[.]|Юрий[.]|Ярослав[.]|Яромир[.]|Александровна[.]|Андреевна[.]|Алексеевна[.]|Артемьевна[.]|Арсеньевна[.]|Артёмовна[.]|Анатольевна[.]|Антоновна[.]|Арсеновна[.]|Артуровна[.]|Альбертовна[.]|Аделевна[.]|Айдаровна[.]|Амировна[.]|Богдановна[.]|Борисовна[.]|Васильевна[.]|Валерьевна[.]|Витальевна[.]|Владовна[.]|Владимировна[.]|Всеволодовна[.]|Вадимовна[.]|Викторовна[.]|Вячеславовна[.]|Владиславовна[.]|Георгьевна[.]|Германовна[.]|Григорьевна[.]|Гордеевна[.]|Глебовна[.]|Дмитрьевна[.]|Давидовна[.]|Демидовна[.]|Денисовна[.]|Данилаовна[.]|Данииловна[.]|Даниловна[.]|Дамировна[.]|Даниэль,Егоровна[.]|Евгеньевна[.]|Елисеевна[.]|Захаровна[.]|Ильяовна[.]|Игнатовна[.]|Ивановна[.]|Игоревна[.]|Ильдаровна[.]|Кирилловна[.]|Константиновна[.]|Леонидовна[.]|Левовна[.]|Лукаовна[.]|Максимовна[.]|Михайловна[.]|Марковна[.]|Макаровна[.]|Матвеевна[.]|Мироновна[.]|Мирославовна[.]|Маратовна[.]|Марселевна[.]|Николаевна[.]|Назаровна[.]|Никитаовна[.]|Олеговна[.]|Одиссеевна[.]|Платоновна[.]|Петровна[.]|Павловна[.]|Робертовна[.]|Романовна[.]|Родионовна[.]|Ростиславовна[.]|Радмировна[.]|Руслановна[.]|Ринатовна[.]|Рамилевна[.]|Рустамовна[.]|Степановна[.]|Семеновна[.]| Савельевна[.]|Сергеевна[.]|Савваовна[.]|Станиславовна[.]|Святославовна[.]|Святогоровна[.]|Самировна[.]|Тимофеевна[.]|Тихоновна[.]|Тимуровна[.]|Тамерлановна[.]|Федоровна[.]|Филипповна[.]|Эдуардовна[.]|Эмилевна[.]|Юрьевна[.]|Ярославовна[.]|Яромировна[.]|Яновна[.]|Александрович[.]|Андреевич[.]|Алексеевич[.]|Артемьевич[.]|Арсеньевич[.]|Артёмович[.]|Анатольевич[.]|Антонович[.]|Арсенович[.]|Артурович[.]|Альбертович[.]|Аделевич[.]|Айдарович[.]|Амирович[.]|Богданович[.]|Борисович[.]|Васильевич[.]|Валерьевич[.]|Витальевич[.]|Владович[.]|Владимирович[.]|Всеволодович[.]|Вадимович[.]|Викторович[.]|Вячеславович[.]|Владиславович[.]|Георгиевич[.]|Германович[.]|Григорьевич[.]|Гордеевич[.]|Глебович[.]|Дмитрьевич[.]|Давидович[.]|Демидович[.]|Денисович[.]|Данилович[.]|Даниилович[.]|Данилович[.]|Дамирович[.]|Даниэлевич[.]|Егорович[.]|Евгеньевич[.]|Елисеевич[.]|Захарович[.]|Ильич[.]|Игнатович[.]|Иванович[.]|Игоревич[.]|Ильдарович[.]|Кириллович[.]|Константинович[.]|Леонидович[.]|Львович[.]|Лукич[.]|Максимович[.]|Михайлович[.]|Маркович[.]|Макарович[.]|Матвеевич[.]|Миронович[.]|Мирославович[.]|Маратович[.]|Марселевич[.]|Николаевич[.]|Назарович[.]|Никитович[.]|Олегович[.]|Одиссеевич[.]|Платонович[.]|Петрович[.]|Павелович[.]|Робертович[.]|Романович[.]|Родионович[.]|Ростиславович[.]|Радмирович[.]|Русланович[.]|Ринатович[.]|Рамилевич[.]|Рустамович[.]|Степанович[.]|Семенович[.]| Савельевич[.]|Сергеевич[.]|Саввович[.]|Станиславович[.]|Святославович[.]|Святогорович[.]|Самирович[.]|Тимофеевич[.]|Тихонович[.]|Тимурович[.]|Тамерланович[.]|Федорович[.]|Филиппович[.]|Эдуардович[.]|Эмилевич[.]|Юрьевич[.]|Ярославович[.]|Яромирович[.]|Янович[.]//gi" ./**/* ; rename "s/к исх|к Исх/исх/gi" ./**/* ; rename "s/ | / /gi" ./**/* ; rename "s/вокзал |вокзале |вокзалы |вокзалов|вокзалам /вкз. /gi" ./**/* ; rename "s/инвестиционной программы/инвестпрогр./gi" ./**/* ; rename "s/ждв/вокз./gi" ./**/* ; rename "s/_ На исполн. Правдина И.Ю.//gi" ./**/* ; rename "s/Система/Сист./gi" ./**/* ; rename "s/ .ов//gi" ./**/* ; rename "s/Система визуального информирования пассажиров/СВИП./gi" ./**/* ; rename "s/пассажиров/пасс./gi" ./**/* ; rename "s/овна |ович |ова| Геннадьевна//gi" ./**/* ; rename "s/электро/эл./gi" ./**/*
done
Словарь у вас (если будет необходимость) будет другой. Скрипт держу в близкой досягаемости и постоянно туда что-то дописываю.
Получается неплохо.
Скрипт прикручиваю к ПКМ с названием "Сократить название файлов". Команда:
shorten_filenames_recursively.sh %N; shorten_filenames_recursively.sh %N; notify-send "Готово!"; mpv /usr/share/sounds/muchcacha_night/stereo/network-connectivity-established.oggМаска файлов: *
Условие появления: Галки -везде.

Надеюсь, кому-то поможет.
Искренне ваш, el
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

января 09, 2022, 10:19:59 #1816 Последнее редактирование: января 09, 2022, 10:37:09 от xub Причина: дополнение
Приветствую!

Да я в общем-то сразу сказал:
Цитата: xub от января 07, 2022, 09:09:46Можно переименовать все файлы на месте, но не всегда получается, если особо издевательские имена.

find . -type f -exec bash -c 'mv "$0" "`echo \"$0\"|sed "s:[^A-Za-zа-яА-Я0-9_/.]:_:g;s:_\{1,\}:_:g"`"' {} \;

Это ,,композиция😇" рекурсию не тянет😕... Правильнее было бы не вводить в заблуждение и
написать сразу c -maxdepth 1:
find . -maxdepth 1 -type f -exec bash -c 'mv "$0" "`echo \"$0\"|sed "s:[^A-Za-zа-яА-Я0-9_/.]:_:g;s:_\{1,\}:_:g"`"' {} \;

Это применяется когда уже все файлы скопированы и собраны в одну директорию.

Не достиг я успеха в тотальном рекурсивном переименовании больших «файлопомоек» особенно с арабскими и китайскими именами😞...

А поскольку я при переименованиях пытался изменить общую «архитектуру помойки», то какая разница, раз уже всё нарушено то можно или скопировать или переместить файлы в одну директорию.

Цитата: el guahiro от января 08, 2022, 13:55:534. У меня что-то не сработало с каталогами (может версия sed???)

Тут два момента может быть:
1.) Не было обращено внимание на -type d ┃ можно вообще -type f,d,l ┃ ...
2.) Директории при попытке рекурсии переименовываются с -depth (не путать с maxdepth), ну этот параметр предусматривает переименование с «хвоста», а не как попало. Причина понятна, если начать переименовывать с «головы» то до «хвоста» не дойти.
find . -depth -type d -exec rename 's|\n|_|g' '{}' \;
find . -depth -type f -exec rename 's|\n|_|g' '{}' \;

То что в предыдущем моём сообщении это как бы скрипт разобранный на команды,😇, работает только целиком.

Ну а с разделителями, да нужно было оговорить это дело. Кстати есть команды, где это не работает. Но можно, например вот так.
sed -i "/\//s@AA@BB@" Z.txt▐❚найти строки с ,,/" и заменить там ,,AA" на ,,BB" непосредственно в файле❚
В первой части команды возможно только ,,/" ...

По сокращению длины файлов у меня тоже есть решения, но они привязаны к Ranger'у моему файловому менеджеру.
Можно тоже представить, наверное, в варианте набора отдельных команд.

Режим у меня, спасть буду😇 , до встречи!

2022-01-08 23:37:03
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

Цитата: xub от января 09, 2022, 10:19:59Не достиг я успеха в тотальном рекурсивном переименовании больших «файлопомоек»
Поможет 100% конструкция типа:
for i in {0..20} ; do find . -maxdepth $i -mindepth $i -name '*[<>\:\\|?*]*' -o -name '*[ \.]' | rename 's/[\\?*:><|"]*|[ \.?]*$//g' ; doneКоманда поочерёдно обходит уровни вложенности директорий.
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Я Вас приветствую, прямо категорически приветствую!😇

Команда как команда, но даже маленькую «помоечку» не берёт!😞
Про настоящую помойку из какого-то китайского или арабского архива даже нет смысла говорить, Вы такого точно не видели в связи с тем, что другими делами заняты! :wink:

Я продолжу через некоторое время, у Вас же как у людей неделя начинается с понедельника, а у нас у империалистов😇 с воскресенья! Буду занят слегка.

2022-01-09 08:22:21


При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

xub

2022 Jan 09; 01:57 PM Продолжаю...

Описываемая мною ситуация не стандартная, но и встречается не часто. Когда я впервые споткнулся о «двухэтажный файл, директорию» я вообще  не представлял, что такое может быть. В терминале это неочевидно😞. Как получается этот разрыв строки ,,\n" я не знаю. Как делать искусственно я теперь знаю, но как такие файлы у кого-то получаются сами собой я понятия не имею.

Предложенная Вами команда для более простых случаев. Посмотрите это (не хочется лишнего мусора на форуме): https://termbin.com/swn3

Кстати, частично облегчает системе работу с файлами их транслитерация. Да транслитерацию читать неудобно, выглядит похабно. Хотя имеются, например варианты латиницы для украинского языка. Мне не понравился ни один😞.

Для русского даже смотреть не стал. Хотя у сербскохорватского или хорватскосербского две письменности латиница и кириллица.

Ну мы продолжим вопрос то бесконечный😇, у нас тут семейное торжество, до встречи!

2022-01-09 14:17:19
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

xub

Приветствую!

Всё что я по теме переименований до этого наплёл, представляет, конечно познавательный интерес😕, НО итогом пока можно считать:

find . -depth -exec rename 's|\n|_|g' '{}' \;Опционально в случае возможного наличия файлов и директорий с разрывом строки ❰\n❱.
Применять до того момента пока не прекратятся сообщения об ошибках.

find . -depth -exec rename -d 's/[^a-zA-Z0-9_.-]/_/g' '{}' \;Основная команда, требует доработки в части кириллицы😕, производит замену всего, кроме того, что в [^a-zA-Z0-9_.-], обходит директории ❰-d❱...

Продолжаю изыскания, всё равно опять ограничения, наша возрастная группа уже получила 4 прививки двумя вакцинами. 12% только не привитых в провинции, а в нашем городе на 200 тысяч всё равно 1500 заболевших😞. Правда привитые быстро выздоравливают и без госпитализации.

Из развлечений, короче, один каток на свежем воздухе😇.

2022-01-10 09:26:55
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

января 11, 2022, 16:26:04 #1821 Последнее редактирование: января 11, 2022, 16:27:39 от el guahiro
Цитата: xub от января 10, 2022, 20:26:58требует доработки в части кириллицы
Метод исключения А-Я у меня всегда даёт файлы с неверной кодировкой, допускаю, что это от версии rename в ubuntu. Можно решить через mv, но это опять всё заново городить...
Что касаемо ограничений, у нас они официально декларируются, но строгость российских законов компенсируется необязательностью их выполнения :).
Вот, например, гуляния на Рождество:

или вот:


Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Приветствую!
Цитата: el guahiro от января 11, 2022, 16:26:04Метод исключения А-Я у меня всегда даёт файлы с неверной кодировкой, допускаю, что это от версии rename в ubuntu. Можно решить через mv, но это опять всё заново городить...

Я так понял, что это не только проблема rename в ubuntu, а вообще с perl связано😞. Решения есть для конкретной строчки или конкретного файла. А для программы perl rename ничего я такого не нашёл.

Пробовал транслитерацию, уродливо очень и несовременно в эпоху UTF-8, всё бы ничего, но у меня не получилась корректно обратная транслитерация.

Относительно mv годится только для конкретной директории или ограниченном количестве вложенных директорий.

Ну, я тут ещё одну идею отрабатываю. Потом напишу о результатах.

А ничего плохого на ваших народных  гуляниях я не заметил, не армейскими же колоннами в плотном строю идут😇! Думаю это не сильно опасно. В помещении, думаю, вся опасность...

2022 Jan 11; 09:14 AM
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

Продолжая тему "лечения" имён файлов в "неправильной" кодировке.
Иногда встречаются файлы с вопросительными знаками в ромбике в имени файла. На конце, после расширения, иногда написано:
(неправильная кодировка).Сначала получаем имена файлов с шифром неправильного символа:
ls -1RQ *[![:print:]]*Затем, когда увидели вывод типа \320 или \321, ..может быть другая цифра... лечим:
rename "s/[\320][.]/./g" *; rename "s/[\321][.]/./g" *Здесь [.] - потому что у меня неправильные символы стоят перед точкой. Нужно обязательно точно дать условие расположения неправильного символа.
Для рекурсивного просмотра "неправильных имён перед первой командой можно сделать:
shopt -s globstar
Думаю, кому-то очень поможет. Такой баг встречается, и "лечится" в муках.
Искренне ваш, el
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Приветствую!
Поздравляю с приближающимся окончанием праздников😇!

Последний промежуточный результат «дополненный и улучшенный😇»...
https://termbin.com/l3fxj

2022 Jan 13; 07:35 PM
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

2 xub:
Мы помним, что ASCII расшифровывается как "American Standard Code for Information Interchange" (Американский стандартный код для обмена информацией), поэтому удаление всех не ascii символов приведёт к удалению и кириллических символов из имён файлов. Этого делать нельзя.
Поэтому, выдаётся, что решение xub по очистке имён файлов:
find . -depth -type d -exec bash -c 'mv "$0" "`echo \"$0\"|sed "s:[^A-Za-zа-яА-Я0-9_/.]:_:g;s:™::g;s:_\{1,\}:_:g"`"' {} \;
find . -depth -type f -exec bash -c 'mv "$0" "`echo \"$0\"|sed "s:[^A-Za-zа-яА-Я0-9_/.]:_:g;s:™::g;s:_\{1,\}:_:g"`"' {}
должно сработать.
Будем тестировать.

Искренне ваш, el
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

el guahiro

января 14, 2022, 22:25:26 #1826 Последнее редактирование: января 14, 2022, 22:31:11 от el guahiro
МойОфис - российская компания - разработчик безопасных офисных решений для общения и совместной работы с документами впервые выпустил версию редактора «МойОфис Стандартный. Домашняя версия» под Linux. Офимный пакет полностью совместим с операционными системами Astra Linux и «Альт», а также для xUbuntu, Debian, а также  rpm-based дистрами. Чтобы погонять его под Арч, можно разархивировать deb-пакет и запустить соответствующие скрипты.
Обзор возможностей программы можно посмотреть здесь
Скачать можно на этой странице
 или по этой ссылке.
Я установил его и хочу отметить, что как лайт версия Онлиофиса/Либреофиса вполне годится. Хотя... по регуляркам не ищет/не заменяет, Excel файл 53 mb открывал минуту (это долго), а потом на нём тормозил (как впрочем тормозит и Onlyoffice).
Зато простые docx файлы открывает мгновенно (это важно для быстрой работы юристов, строителей и прочих, кто имеет дело с массой офисных/нормативных документов). Интерфейс простой и приятный, хотя шрифт интерфейса не кастомизируется автоматом под систему (что огорчило). Некоторые приёмы при форматировании напоминают Google Docs, и это хорошо.
Системные шрифты подхватились мгновенно.
В приложении есть встроенный редактор формул. Он будет полезен тому, кто использует формулы в своих текстах. С помощью языка разметки LaTex можно вводить формулы любой степени сложности, используя при этом буквы греческого алфавита, знаки операций и многое другое. При этом формулы будут отображаться и распечатываться корректно: с сохранением структуры, особенностей и т. д.
Редактор написан на lua, что сулит ему светлое будущее! Справочник макрокоманд (под lua) для «МойОфис Стандартный» здесь
В полку офисных редакторов под Linux прибыло, и это хорошо!
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Приветствую!
Цитата: el guahiro от января 14, 2022, 11:39:44поэтому удаление всех не ascii символов приведёт к удалению и кириллических символов из имён файлов. Этого делать нельзя.
Ну да, для кириллицы как раз то, что у меня значится как ,,--▶ МЯГКИЙ ВАРИАНТ", при этом выполнять нужно все команды мягкого варианта, а также обязательна ,,--▶ ИНДЕКСАЦИЯ" всё в той последовательности как указано в моей записке.
Спойлер
ПРИВЕДЕНИЕ В ПОРЯДОК ДИРЕКТОРИИ С БОЛЬШИМ НАГРОМОЖДЕНИЕМ ДРУГИХ ДИРЕКТОРИЙ И ПОДДИРЕКТОРИЙ
       ВЫПОЛНЯТЬ КОМАНДЫ ПОСЛЕДОВАТЕЛЬНО, ПРИ НЕОБХОДИМОСТИ ПОВТОРЯТЬ

 --▶ МЯГКИЙ ВАРИАНТ. Удаление  разрыва строки ❰\n❱ из всех ,,d" и ,,f" , выполнять до прекращения соообщения об ошибках!
⮞⮞find . -depth -type d -exec rename 's|\n|_|g' '{}' \; && find . -depth -type f -exec rename 's|\n|_|g' '{}' \;⮜⮜

 --▶ ЖЁСТКИЙ ВАРИАНТ. Удаление  разрыва строки ❰\n❱ и ❰не ascii❱ из всех ,,d" и ,,f". Остаются только ❰ascii буквы❱ и цифры.
⮞⮞find . -depth -type d or f ❰or d,f❱ -name '*' -exec rename -d 's:\n:_:g;s/[^[:ascii:]]/_/g;s:_{1,}:_:g' '{}' \;⮜⮜
⮞⮞find . -depth -type d or f ❰or d,f❱ -name '*' -exec rename -d 's/[^a-zA-Z0-9._]/_/g;s:_{1,}:_:g' '{}' \;⮜⮜

 --▶ МЯГКИЙ ВАРИАНТ. Удаление всех небуквенных символов из всех ,,d" стандартной ❰en❱ раскладки кроме ,,_" и ,,."...
⮞⮞find . -depth -type d -name '*' -exec rename -d 's/['\''\ ;:\-^\"%&*\\(),=+~!#$|@<>\[\]\{\}`?]/_/g;s:_{1,}:_:g' '{}' \;⮜⮜


 --▶ ИНДЕКСАЦИЯ ,,d" и ,,f".❰Отрезок (хвост) времени Unix Epoch❱┃date +%s --▶ 1642116394 ‖ date +%s%8N --▶ 164211643514877874┃
⮞⮞find . -depth -type d  -iname "*" -exec bash -c 'mv "$0" "`echo $0 | \
sed -r "s:(.*)/:\1/$(date +%s%4N)_:;s:(.*)/.{8}:\1\/:"`"' {} \;⮜⮜
⮞⮞find . -depth -type f -iname "*" -exec bash -c 'mv "$0" "`echo $0 | \
sed -r "s:(.*)/:\1/$(date +%s%4N)_:;s:(.*)/.{8}:\1\/:"`"' {} \;⮜⮜
⮞⮞find . -depth -type d,f -iname "*" -exec bash -c 'mv "$0" "`echo $0 | \
sed -r "s:(.*)/:\1/$(date +%s%4N)_:;s:(.*)/.{8}:\1\/:"`"' {} \;⮜⮜

 --▶ МЯГКИЙ ВАРИАНТ. Удаление всех небуквенных символов из всех ,,f" стандартной ❰en❱ раскладки кроме ,,_" и ,,."...
⮞⮞find . -depth -type f -name '*' -exec rename -d 's/['\''\ ;:\-^\"%&*\\(),=+~!#$|@<>\[\]\{\}`?]/_/g;s:_{1,}:_:g' '{}' \;⮜⮜

 --▶ ЖЁСТКИЙ ВАРИАНТ. Остаются только ❰ascii буквы❱ и цифры.
⮞⮞find . -depth -type f -name '*' -exec rename -d 's/[^a-zA-Z0-9._]/_/g;s:_{1,}:_:g' '{}' \;⮜⮜

 --▶ МЯГКИЙ ВАРИАНТ. Окончательная оптимизация имён всех ,,d" и ,,f". Иногда выводит сообщения об ошибках, можно игнорировать.
⮞⮞find . -depth -type d -exec bash -c 'mv "$0" "`echo \"$0\"|sed "s:[^A-Za-zа-яА-Я0-9_/.]:_:g;s:™::g;s:_\{1,\}:_:g"`"' {} \;⮜⮜
⮞⮞find . -depth -type f -exec bash -c 'mv "$0" "`echo \"$0\"|sed "s:[^A-Za-zа-яА-Я0-9_/.]:_:g;s:™::g;s:_\{1,\}:_:g"`"' {} \;⮜⮜

Условные обозначения: ┃ --▶ ,,d" и ,,f" ⟶ директории и файлы ┃ --▶ ⮞⮞команда⮜⮜ ⟶ начало и конец команды ┃

2022 Jan 13; 07:22 PM; Oakville, ON, Canada.
[свернуть]
Из-за необходимости иногда повторять команды не получается сделать более менее приличный скрипт, можно, конечно повторять каждую команду раз по 10 для верности, но как-то это некрасиво😞...

Длинные выводы терминала можно размещать здесь:
cat XYZ.txt | nc termbin.com 9999Но хранятся не ,,вечно" а вроде один месяц.

2022 Jan 14; 12:51 PM
 
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

RoDoN

Цитата: el guahiro от января 14, 2022, 22:25:26МойОфис
Уже больше двух лет, в связи с внедрением импортозамещения, время от времени тестирую МойОфис и что странно этот офисный пакет никак не научится работать с таблицами, в которых используется защита листа - он на нее плюет и напрочь сносит, т.е. делаешь таблицу в нормальном офисе, делаешь защиту листа, чтобы можно было заполнять только определенные ячейки и исполнители не могли накосячить, а после открытия файла в МойОфис защиты нет и пользователи лепят все что и куда хотят и при этом МойОфис позиционируется, как офисный пакет для гос. заказчиков
Lenovo B590 (i3-3110M, 8 Гб, GeForce 720M)

el guahiro

Цитата: RoDoN от января 15, 2022, 00:44:46МойОфис позиционируется, как офисный пакет для гос. заказчиков
Для госзаказов важны не потребительские свойства, а правильное лобби. Был как-то на конференции по внедрению систем документооборота. Представители предприятия, юзающего самую тухлую систему документооборота в России (ЕАСД, если кто в теме) сказали: "нам не надо, нас всё устраивает". Сказали потому, что никто из присутствующих не пользовался лично этой системой (за них туда ходят секретарши). А то, что каждый подчинённый этого начальника теряет час-полчаса в день на ожидание загрузки интерфейса программы, загрузки документов и заполнение каждый раз снова того, что уже должно быть заполнено, -- это их не волнует, т.к. госкомпания и рабочее время оплачивают не они.
Вангую тернистый путь внедрения отечественного ПО. В итоге всё провалится и перейдём на аналогичное китайское.
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions