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
语言环境:
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=
我是一名优秀的程序员,十分优秀!