1

Проделал пару операций после чего в папке с музыкой (2 691 объект) в некоторых именах файлов в начале появился пробел. Сидеть и удалять пробелы в ручную запарюсь. Может подскажете какуюнить команду для терминала чтобы быстренько это исправить? Заранее спасибо.

2

addison, проще всего установить, если не установлена, специально для этого предназначенную программу — rename.

Был, был и весь вышел...

3 (22.01.2012 16:38:51 отредактировано gramozeka)

от это костыль [чешет репу задумчиво...]  oO

#!/bin/bash
for i in *; 
do  
    oldname=`basename "$i"`;
    newname=`echo $oldname | sed 's/^[     ]//g'`;
    if ! cmp "$oldname" "$newname" 2>/dev/null;
   then 
    mv "$oldname" "$newname";
    fi
done
" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

4

http://linuxforum.ru/viewtopic.php?pid=245046#p245046
Вроде правильно работает.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

5

perl-rename 's/^ //'

6 (25.01.2012 01:00:13 отредактировано zenon)

liaonau, объяснить не мешало бы, например в Gentoo надо установить dev-perl/rename.

$ perl-rename -n 's/ //g' ./*

На самом деле не переименует, а только покажет как отработает, опция [-n].

ы. И, да

liaonau пишет:

perl-rename 's/^ //'

не сработает.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

7 (25.01.2012 04:30:17 отредактировано drBatty)

addison пишет:

Проделал пару операций после чего в папке с музыкой (2 691 объект) в некоторых именах файлов в начале появился пробел. Сидеть и удалять пробелы в ручную запарюсь. Может подскажете какуюнить команду для терминала чтобы быстренько это исправить? Заранее спасибо.

что-то вроде

 Консоль:
find | sed -rn 's~^(.*)/\s+([^/]+)$~mv --backup "&" "\1/\2"~p'

(если понравится, поставьте после посл. буквы p букву e)

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

8

drBatty пишет:

что-то вроде

доктор прокомментируй пожалуйста sed, а то шаманизм какой-то  oO

" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

9

drBatty пишет:

find | sed -rn 's~^(.*)/\s+([^/]+)$~mv --backup "&" "\1/\2"~p'

sed может применяться для замены строк. например sed s~карова~корова~ меняет карову на корову.
мы ищем ^(.*)/\s+([^/]+)$
читается это так:
1. ^ с начала строки
2. (.*) любые символы в любом количестве
3. /\s+ слеш, а после него пробелы не менее 1.
4. ([^/]+) не менее одного любого символа кроме слеша (это имя файла без пробела в начале)
5. $ конец строки
Дальше меняем на mv --backup "&" "\1/\2", получается mv --backup "старое_имя" "новое_имя"

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

10

Не хочу создавать дубли тем, собственно вопрос таков, а как удалять пробелы в конце имени файла, как это сделать в файле я знаю, а вот как поступить с именем файла, что-то затрудняюсь придумать конструкцию.

It is good day to die ...
MS Windows 10
Заметки о главном...

11 (14.06.2012 10:57:19 отредактировано Fat-Zer)

i2ks пишет:

Не хочу создавать дубли тем, собственно вопрос таков, а как удалять пробелы в конце имени файла, как это сделать в файле я знаю, а вот как поступить с именем файла, что-то затрудняюсь придумать конструкцию.

по следам доковского:
find | sed -rn 's~^(.*)/([^/]+)\s+$~mv --backup "&" "\1/\2"~p'
применять также с e.

95% процентов проблем находятся между клавиатурой и стулом.

12

Fat-Zer пишет:

по следам доковского:
find | sed -rn 's~^(.*)/([^/]+)\s+$~mv --backup "&" "\1/\2"~p'
применять также с e.

Ну ты прям К.О, вот я и не могу понять, как сделать так, что бы в конце строки, а точней имени файла пробелы удалялись.

It is good day to die ...
MS Windows 10
Заметки о главном...

13 (14.06.2012 13:06:50 отредактировано Fat-Zer)

i2ks пишет:

Ну ты прям К.О, вот я и не могу понять, как сделать так, что бы в конце строки, а точней имени файла пробелы удалялись.

а я что написал? о_О
[added]
а... ну да... это только один пробел отрежет... надо подумать...
[added]
вот так вроде должно работать:
find | sed -rn 's~^(.*\S)\s+$~mv --backup "&" "\1/\2"~p'

95% процентов проблем находятся между клавиатурой и стулом.

14

Sysadmins tips and tricks

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

15 (14.06.2012 12:47:54 отредактировано Fat-Zer)

newzenon пишет:

Sysadmins tips and tricks

плохие там советы...
всё что с for'ом работать вообще не будет, писал их явно какой-то остолоп... и не стыдно от своего имени такое вывешивать? хоть проверил бы, перед тем как выкладывать...
..... а остальные не буду работать с пробелами на конце. кроме того для удаления пробелов только в начале/конце их тоже тривиально преобразовать не удастся (но можно)...

95% процентов проблем находятся между клавиатурой и стулом.

16

Fat-Zer пишет:
newzenon пишет:

Sysadmins tips and tricks

плохие там советы...
всё что с for'ом работать вообще не будет, писал их явно какой-то остолоп... и не стыдно от своего имени такое вывешивать? хоть проверил бы, перед тем как выкладывать...
..... а остальные не буду работать с пробелами на конце. кроме того для удаления пробелов только в начале/конце их тоже тривиально преобразовать не удастся (но можно)...

Можно вообще ничего не вывешивать и не делать ничего - ошибок еще меньше будет, и да когда писал проверял, умвр. Для обсуждений там ссылка есть в первом посте, есть более правильный совет так напиши.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

17

newzenon пишет:

Можно вообще ничего не вывешивать и не делать ничего - ошибок еще меньше будет, и да когда писал проверял, умвр. Для обсуждений там ссылка есть в первом посте, есть более правильный совет так напиши.

ладно... за остолопа извини... плохой день выдался...
я чего-то просмотрел переопределение IFS во второй строке... ИМХО не красиво, но имеет право на существование....

95% процентов проблем находятся между клавиатурой и стулом.

18

Fat-Zer пишет:
newzenon пишет:

Можно вообще ничего не вывешивать и не делать ничего - ошибок еще меньше будет, и да когда писал проверял, умвр. Для обсуждений там ссылка есть в первом посте, есть более правильный совет так напиши.

ладно... за остолопа извини... плохой день выдался...
я чего-то просмотрел переопределение IFS во второй строке... ИМХО не красиво, но имеет право на существование....

Принято. ab
Лучше если звезды лягут, свои пару постов в вышеобозначенную тему сделай.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

19

Fat-Zer пишет:

find | sed -rn 's~^(.*\S)\s+$~mv --backup "&" "\1/\2"~p'

Сам то пробовал? В общем отвечу, так не работает. :-)

It is good day to die ...
MS Windows 10
Заметки о главном...

20

i2ks пишет:

Сам то пробовал? В общем отвечу, так не работает. :-)

после восьмой правки того поста перестал работать. =)
find | sed -rn 's~^(.*\S)\s+$~mv --backup "&" "\1"~p'
[fixed]
напоминание себе: оно работает, не трогать!

95% процентов проблем находятся между клавиатурой и стулом.