我正在嘗試編寫一個腳本,它將人名作爲參數並使用其名稱創建一個文件夾。但在文件夾名稱中,非ASCII字符和空格有時會出現問題,所以我想刪除它們或將它們更改爲ASCII字符。 我可以刪除名字和姓氏之間的空白,但我無法弄清楚我該如何更改?s,ç-> c,?g,?i,?o> o。將所有非ascii字符更改爲ascii Bash腳本
這裏是我的代碼:
#!/bin/bash
ARRAY=("[email protected]")
ELEMENTS=${#ARRAY[@]}
for ((i=0;i<$ELEMENTS;i++))
do #C-like for loop syntax
echo ${ARRAY[$i]} | grep "[^ ]*\b" | tr -d ' '
done
我跑我的劇本一樣,myscript.sh「Çişil索伊 '傑姆Dalgıç'
應該改變的參數,如:CisilAksoy CemDalgic
在此先感謝
編輯: 我發現這個解決方案,這看起來不漂亮,但它的工作原理。
sed 's/ş/s/gI; s/ç/c/gI; s/ü/u/gI; s/ö/o/gI; s/ı/i/gI;'
EDIT2:解決
#!/bin/bash
ARRAY=("[email protected]")
ELEMENTS=${#ARRAY[@]}
for ((i=0;i<$ELEMENTS;i++))
do #C-like for loop syntax
v=$(echo ${ARRAY[$i]} | grep "[^ ]*\b" | tr -d ' ' | sed 's/ş/s/gI; s/ç/c/gI; s/ü/u/gI; s/ö/o/gI; s/ı/i/gI;')
mkdir $v
done
其實它並沒有失敗,但我想改變這一切字符在有效的ASCII的。字符集是我需要改變的地方。 (s-> s,ç-> c,ı-> i,> g,ö-> o,ü-> u) –
sed's/c/c/g; s /ş/ s/g'''<<<'Çişil'我認爲這不是一個好方法,但我的工作是這樣的 –