LINUX.ORG.RU

Сделай что-то вроде этого

sed -e \
    "y/йукенгзхъфывапролдэсмитьбЙУКЕНГЗХЪФЫВАПРОЛДЭСМИТЬБ/jukengzh'fyvaproldesmit'bJUKENGZH'FYVAPROLDESMIT'B/"\
    -e "s/ц/tz/g"	\
    -e "s/ш/sh/g"	\
    -e "s/щ/sch/g"	\
    -e "s/ж/zh/g"	\
    -e "s/ч/ch/g"	\
    -e "s/ю/yu/g"	\
    -e "s/я/ya/g"	\
    -e "s/ё/yo/g"	\
    -e "s/Ё/YO/g"	\
    -e "s/Ц/TZ/g"	\
    -e "s/Ш/SH/g"	\
    -e "s/Щ/SCH/g"	\
    -e "s/Ж/ZH/g"	\
    -e "s/Ч/CH/g"	\
    -e "s/Ю/YU/g"	\
    -e "s/?/_/g"	\
    -e "s/Я/YA/g"`
только наоборот.

Мелкий пример:

echo "zhelezyaka" | sed -e 's/zh/ж/g' -e 's/ya/я/g' -e 'y/elzak/елзак/'
железяка

Eddy_Em ☆☆☆☆☆
()
Последнее исправление: Eddy_Em (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

Переделал чужой скрипт, вроде работает:

#!/bin/bash

shopt -s nullglob
for NAME in * ; do
 TRS=`echo $NAME | sed -e "s/tz/ц/g" -e "s/sh/ш/g" -e "s/sch/щ/g" -e "s/zh/ж/g" -e "s/ch/ч/g" -e "s/yu/ю/g" -e "s/ya/я/g" -e "s/yo/ё/g" -e "s/YO/Ё/g" -e "s/TZ/Ц/g" -e "s/SH/Ш/g" -e "s/SCH/Щ/g" -e "s/ZH/Ж/g" -e "s/CH/Ч/g" -e "s/YU/Ю/g" -e "s/YA/Я/g" -e "y/jukengzh'fyvaproldesmit'bJUKENGZH'FYVAPROLDESMIT'B/йукенгзхъфывапролдэсмитьбЙУКЕНГЗХЪФЫВАПРОЛДЭСМИТЬБ/"`
 if [[ `file -b "$NAME"` == directory ]]; then
 mv -v "$NAME" "$TRS"
 cd "$TRS"
 "$0"
 cd ..
 else
 mv -v "$NAME" "$TRS"
 fi
done

qclbapllzd
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.