URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9779
[ Назад ]

Исходное сообщение
"Подскажите, как удалить из имени файла все символы, кроме цифр"

Отправлено Magi , 08-Ноя-13 13:30 
Здравствуйте!

Есть много несортированных файлов вида
0124114687_Neurosc.pdf
0323057241_Dentistr.pdf
0323079547_Spine.pdf
0323085008 Care.pdf  
0340815892 OSCEs.pdf

Как из имен файлов можно удалить все символы, кроме цифр?


Содержание

Сообщения в этом обсуждении
"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено Andrey Mitrofanov , 08-Ноя-13 13:40 
> 0124114687_Neurosc.pdf
> Как из имен файлов можно удалить все символы, кроме цифр?

gnu bash$ S=0124114687_Neurosc.pdf
gnu bash$ echo ${S//[^0-9]}
0124114687
gnu bash$ _

ЗЫ: На правоверном поссиксе -- дороже.


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено bob , 08-Ноя-13 14:43 
>> 0124114687_Neurosc.pdf
>> Как из имен файлов можно удалить все символы, кроме цифр?
> gnu bash$ S=0124114687_Neurosc.pdf
> gnu bash$ echo ${S//[^0-9]}
> 0124114687
> gnu bash$ _
> ЗЫ: На правоверном поссиксе -- дороже.

да и не сильно дороже )
echo "0124114687_Neurosc.pdf" | sed 's/[^0-9]//g'


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено Magi , 08-Ноя-13 14:57 
>>> 0124114687_Neurosc.pdf
>>> Как из имен файлов можно удалить все символы, кроме цифр?
>> gnu bash$ S=0124114687_Neurosc.pdf
>> gnu bash$ echo ${S//[^0-9]}
>> 0124114687
>> gnu bash$ _
>> ЗЫ: На правоверном поссиксе -- дороже.
> да и не сильно дороже )
> echo "0124114687_Neurosc.pdf" | sed 's/[^0-9]//g'

А с по маске эта как правильно будет?


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено Andrey Mitrofanov , 08-Ноя-13 15:07 
>> да и не сильно дороже )
>> echo "0124114687_Neurosc.pdf" | sed 's/[^0-9]//g'
> А с по маске эта как правильно будет?

Скажи ему  сразу, чтобы переименовывал файлы.
Скажи ему  сразу, чтобы расширение на месте оставлял.
Скажи ему  сразу, что те надо, что те надо.

Не тяни Эксперта на хвост.


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено михалыч , 08-Ноя-13 15:14 
>>> да и не сильно дороже )
>>> echo "0124114687_Neurosc.pdf" | sed 's/[^0-9]//g'
>> А с по маске эта как правильно будет?
> Скажи ему  сразу, чтобы переименовывал файлы.
> Скажи ему  сразу, чтобы расширение на месте оставлял.
> Скажи ему  сразу, что те надо, что те надо.
> Не тяни Эксперта на хвост.

Ну подскажи ему на awk !


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено Magi , 08-Ноя-13 15:23 
>>> да и не сильно дороже )
>>> echo "0124114687_Neurosc.pdf" | sed 's/[^0-9]//g'
>> А с по маске эта как правильно будет?
> Скажи ему  сразу, чтобы переименовывал файлы.
> Скажи ему  сразу, чтобы расширение на месте оставлял.
> Скажи ему  сразу, что те надо, что те надо.
> Не тяни Эксперта на хвост.

Как бы это было изначально понятно. Один файл и руками можно переименовать.


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено Andrey Mitrofanov , 08-Ноя-13 15:36 
> Как бы это было изначально понятно. Один файл и руками можно переименовать.

Ну, как бы, молодец.


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено михалыч , 08-Ноя-13 15:14 
> Здравствуйте!
> Есть много несортированных файлов вида
> 0124114687_Neurosc.pdf
> 0323057241_Dentistr.pdf
> 0323079547_Spine.pdf
> 0323085008 Care.pdf
> 0340815892 OSCEs.pdf
> Как из имен файлов можно удалить все символы, кроме цифр?

echo "0124114687_Neurosc.pdf" | perl -pe 's/(\d*).*(\..*)$/$1$2/'


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено Аноним , 08-Ноя-13 17:52 
> Есть много несортированных файлов вида
> 0124114687_Neurosc.pdf
> 0323057241_Dentistr.pdf
> 0323079547_Spine.pdf
> 0323085008 Care.pdf
> 0340815892 OSCEs.pdf
> Как из имен файлов можно удалить все символы, кроме цифр?

rename 's/\D//g' *.pdf


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено Magi , 08-Ноя-13 18:49 
>> Есть много несортированных файлов вида
>> 0124114687_Neurosc.pdf
>> 0323057241_Dentistr.pdf
>> 0323079547_Spine.pdf
>> 0323085008 Care.pdf
>> 0340815892 OSCEs.pdf
>> Как из имен файлов можно удалить все символы, кроме цифр?
> rename 's/\D//g' *.pdf

Вот это здорово! Но не сохраняется расширение..Ф


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено михалыч , 08-Ноя-13 19:21 
>>> Есть много несортированных файлов вида
>>> 0124114687_Neurosc.pdf
>>> 0323057241_Dentistr.pdf
>>> 0323079547_Spine.pdf
>>> 0323085008 Care.pdf
>>> 0340815892 OSCEs.pdf
>>> Как из имен файлов можно удалить все символы, кроме цифр?
>> rename 's/\D//g' *.pdf
> Вот это здорово! Но не сохраняется расширение..Ф

Тогда поизвращаемся ))

ls -1 | grep '\.pdf' | awk '{print "mv \"" $0 "\" `echo \"" $0 "\" | sed -r '\''s/([0-9]*).*(\\..*)/\\1\\2/'\''`"}' | sh

или так

ls -1 | grep '\.pdf' | awk '{print "mv \"" $0 "\" $(echo \"" $0 "\" | sed -r '\''s/([0-9]*).*(\\..*)/\\1\\2/'\'')"}' | sh


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено Magi , 09-Ноя-13 01:57 
>[оверквотинг удален]
>>>> 0340815892 OSCEs.pdf
>>>> Как из имен файлов можно удалить все символы, кроме цифр?
>>> rename 's/\D//g' *.pdf
>> Вот это здорово! Но не сохраняется расширение..Ф
> Тогда поизвращаемся ))
> ls -1 | grep '\.pdf' | awk '{print "mv \"" $0 "\"
> `echo \"" $0 "\" | sed -r '\''s/([0-9]*).*(\\..*)/\\1\\2/'\''`"}' | sh
> или так
> ls -1 | grep '\.pdf' | awk '{print "mv \"" $0 "\"
> $(echo \"" $0 "\" | sed -r '\''s/([0-9]*).*(\\..*)/\\1\\2/'\'')"}' | sh

Вот этот вариант работает как нужно! Спасибо!


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено XAnder , 08-Ноя-13 20:55 
>>> Есть много несортированных файлов вида
>>> 0124114687_Neurosc.pdf
>>> 0323057241_Dentistr.pdf
>>> 0323079547_Spine.pdf
>>> 0323085008 Care.pdf
>>> 0340815892 OSCEs.pdf
>>> Как из имен файлов можно удалить все символы, кроме цифр?
>> rename 's/\D//g' *.pdf
> Вот это здорово! Но не сохраняется расширение..Ф

Если цифры всегда только одной группой, то можно так:

rename 's/^.*(\d+).*$/$1.pdf/' *.pdf


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено Аноним , 09-Ноя-13 20:57 
> Как из имен файлов можно удалить все символы, кроме цифр?

Почитал ответы ... слегка удивлён :)
Короче я бы сделал так:

basename "01241 14687_Neurosc.pdf" .pdf | sed 's/[^0-9]//g'

Дальше верти как надо.


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено Pahanivo , 12-Ноя-13 13:17 
> Здравствуйте!
> Есть много несортированных файлов вида
> 0124114687_Neurosc.pdf
> 0323057241_Dentistr.pdf
> 0323079547_Spine.pdf
> 0323085008 Care.pdf
> 0340815892 OSCEs.pdf
> Как из имен файлов можно удалить все символы, кроме цифр?

на какую тему библиотЭка? )


"Подскажите, как удалить из имени файла все символы, кроме цифр"
Отправлено Magi , 12-Ноя-13 13:33 
>> Здравствуйте!
>> Есть много несортированных файлов вида
>> 0124114687_Neurosc.pdf
>> 0323057241_Dentistr.pdf
>> 0323079547_Spine.pdf
>> 0323085008 Care.pdf
>> 0340815892 OSCEs.pdf
>> Как из имен файлов можно удалить все символы, кроме цифр?
> на какую тему библиотЭка? )

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

http://pastebin.com/4Tjs9rJU
http://pastebin.com/J7BS47d2
http://pastebin.com/rhCzPHKz
Но, как раз с допиливанием у меня проблемы. А автора их я найти не могу.