function change() {
for i in {0..28}
do
echo ",${cryp_data_letter[$i]}" "${org_data[$i]}"
sed -i "s/,${cryp_data_letter[$i]}/${org_data[$i]}/g" "./temp.txt"
#cat "./temp.txt"
done
}
У меня есть функция, которая изменяет некоторый символ в файле temp.txt по специальному правилу, но некоторые символы, такие как ı, ğ, ö и т. Д., Меняются с пустой строкой. Я полагаю, что причиной проблемы является UTF-8, так как я могу применить sed с Unicode? или любое другое предложение для -> "sed -i" s /, $ {cryp_data_letter [$ i]} / $ {org_data [$ i]} / g "" ./temp.txt ""
Вот этот файл temp.txt:
abc ğhıi
def
jkl
oöpr
uü vy z
çgm ns
şt
и вывод:
IDK ,ğS,ıT
NMY
BOÜ
G,öHÇ
P,ü ÖF ,
,çUŞ ZĞ
,şV
Кстати, в процессе возврата я поменяю все буквы строчными буквами и поставлю «,»перед всей буквой, поэтому она станет перед sed:
,a,b,c ,ğ,h,ı,i
,d,e,f
,j,k,l
,o,ö,p,r
,u,ü ,v,y ,z
,ç,g,m ,n,s
,ş,t
LOCALE:
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=tr_TR.UTF-8
LC_TIME=tr_TR.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=tr_TR.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=tr_TR.UTF-8
LC_NAME=tr_TR.UTF-8
LC_ADDRESS=tr_TR.UTF-8
LC_TELEPHONE=tr_TR.UTF-8
LC_MEASUREMENT=tr_TR.UTF-8
LC_IDENTIFICATION=tr_TR.UTF-8
LC_ALL=