|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Zahar Kiselev 2:5030/382.1 07 Feb 2002 22:20:02 To : All Subject : sed? -------------------------------------------------------------------------------- Сегодня опять писал и отлаживал скрипты, обрабатывающие Важные Данные(имена mp3 файлов, которые у меня просили люди из другого города:) Снова использовал sed и в который уже раз наткнулся на одну мелочь, которая не раз уже мешала. Вот например строчка: TIT=`echo -n $T | sed 's, ,,g' | sed 's, $,,g'| sed 's,^ ,,g'| sed 's, ,_,g'` Это писалось для того, чтобы: - убрать длинные цепочки повторяющихся пробелов. - убрать пробелы в конце строки - убрать пробелы в начале строки - заменить оставшиеся пробелы на подчеркивания. Все это _работает_, пусть может быть и не самым оптимальным способом, но формирует строчку, которую можно уже использовать как имя файла. С одним большим "но" - если в исходной строчке встречаются символы ` или ', то их автоматически заменить на подчеркивания не получается. Вполне очевидно, что и bash и sed воспринимают их как спецсимволы. И если bash еще можно отучить от этого при помощи добавления символа \, то вот что сказать sed`у - я так и не понял. У него вообще есть способ задания "запрещенных" символов? Чтение man sed мне в очередной раз не помогло. Также принимаются советы, как еще можно написать преобразование строчки из ID3tags в строчку, пригодную для называния файла? Чтобы вместо TRACK18.MP3 видеть что-то более осмысленное, но при этом не наступать на грабли, вызванные появлением в именах файлов различных "неприятных" символов(вместо них предпочтительны символы подчеркивания). Zahar --- Msged/LNX 6.1.0 * Origin: undefined location (2:5030/382.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/32883c62e6f0.html, оценка из 5, голосов 10
|