Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: bash, работа с именами файлов  (Прочитано 7832 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: bash, работа с именами файлов
« Ответ #30 : 02 Июня 2016, 22:47:54 »
wolfser2701, Переменных 3 всего тут, если грубо говорить. Если "новое имя занято", то убрать количество символов с нового имени равное количеству символов в номере и сделать имя с номерком.
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Wars ~.o

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: bash, работа с именами файлов
« Ответ #32 : 02 Июня 2016, 22:50:14 »
EvangelionDeath,
Я говорю только про mv и mv в скрипте Azure а не про твой скрипт, и пример же написал:
https://forum.ubuntu.ru/index.php?topic=278381.msg2193602#msg2193602
а ты говоришь что неперезапишет.
« Последнее редактирование: 02 Июня 2016, 22:57:01 от Cxms »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: bash, работа с именами файлов
« Ответ #33 : 02 Июня 2016, 23:00:03 »
Циклы с while read не использую, потому что в них не сохраняются значения переменных, после завершения цикла.
В таком формате как я привел всё нормально сохраняется.
читать файл до тех пор, пока
Не так: Пока есть что считывать (не дошли до EOF), считать строку в переменную file
< — перенаправление стандартного входа (читать из) обычно из файла вместо stdin
<() — подстановка функции (вместо файла читать вывод команды в скобках). На самом деле подставляет файловый дескриптор.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн wolfser2701

  • Забанен
  • Участник
  • *
  • Сообщений: 180
    • Просмотр профиля
Re: bash, работа с именами файлов
« Ответ #34 : 02 Июня 2016, 23:00:28 »
EvangelionDeath
Цитировать
Переменных 3 всего тут, если грубо говорить. Если "новое имя занято", то убрать количество символов с нового имени равное количеству символов в номере и сделать имя с номерком.
В общем 3 переменных в  одной задаче "ерунда", осталось только уяснить, ТС это нужно?, и о чём он спрашивал?   :D
И при переводе строк инлгда вылезают такие коды!!!
« Последнее редактирование: 02 Июня 2016, 23:03:32 от wolfser2701 »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: bash, работа с именами файлов
« Ответ #35 : 02 Июня 2016, 23:17:34 »
1:L~$ for f in `find Р*л -type d | tr ' ' '@'`;do echo $f | tr '@' ' ' ;done
Рабочий стол
Рабочий стол/Документы
Рабочий стол/Новый
Рабочий стол/Эра динозавров
1:L~$

))
Wars ~.o

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: bash, работа с именами файлов
« Ответ #36 : 02 Июня 2016, 23:26:26 »
Azure,
Цитировать
В таком формате как я привел всё нормально сохраняется.
Да действительно сохраняется, но вариант IFS + циклы for по моему более понянтее и проще читается, и немного короче если циклов несколько.

 
Цитировать
Пока есть что считывать (не дошли до EOF), считать строку в переменную file …
< — перенаправление стандартного входа (читать из) обычно из файла вместо stdin
<() — подстановка функции (вместо файла читать вывод команды в скобках). На самом деле подставляет файловый дескриптор.
Спасибо за разяснение.
« Последнее редактирование: 02 Июня 2016, 23:28:03 от Cxms »

Оффлайн wolfser2701

  • Забанен
  • Участник
  • *
  • Сообщений: 180
    • Просмотр профиля
Re: bash, работа с именами файлов
« Ответ #37 : 02 Июня 2016, 23:41:22 »
Azure,
Цитировать
читать файл до тех пор, пока
Цитировать
Не так: Пока есть что считывать (не дошли до EOF), считать строку в переменную file …
Извини конечно, я не в курсе, но в данном переводе чем отличается левое яйцо от правого ( Конец (EOF) строки не упомяул?

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: bash, работа с именами файлов
« Ответ #38 : 02 Июня 2016, 23:53:49 »
Azure,
Еще раз напомню, ваш скрипт:
https://forum.ubuntu.ru/index.php?topic=278381.msg2193448#msg2193448
может быть вредоносным, если в mv файл - назначение (новое имя файла) будет существовать, то он будет "затерт" первым.
« Последнее редактирование: 02 Июня 2016, 23:55:49 от Cxms »

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: bash, работа с именами файлов
« Ответ #39 : 03 Июня 2016, 00:04:06 »
Итого:
(Нажмите, чтобы показать/скрыть)

Принимаются замечания))))

P.S. Было желание поставить continue при нахождении скрытого файла. мало чего он скрытый и трогать его думаю явно не надо

Cxms, Azure дал идею) Просили подсказок, а не всю реализацию. И напомню Вам, Ваш скрипт не решает поставленную задачу. Мало того, что файл может со скрытого стать обычным, так еще и зачастую в конец имени файла пишут доп инфо (битрейт, размер, кодек и т.д.), и вы именно оставляете эту часть, что в будущем очень затруднит поиск и навигацию.
« Последнее редактирование: 03 Июня 2016, 00:59:21 от EvangelionDeath »
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: bash, работа с именами файлов
« Ответ #40 : 03 Июня 2016, 00:36:42 »
EvangelionDeath,
А коментарии, описание, использование? Такой код не то что ТС, но и не всякий опытный пользователь поймет.
На счет моего скрпта согласен. Удаление от конца лучше.

 

Страница сгенерирована за 0.05 секунд. Запросов: 23.