我在grep腳本中輸入命令並將結果存儲在變量中。從shell腳本中的變量中刪除非ASCII字符
有一個非常特殊的情況,由於grep使用的分析邏輯,此變量可能具有非ascii字符。
問:如何從shell腳本中的這個變量中刪除這些非ascii字符,以便我可以在後續命令中使用該變量?
我在grep腳本中輸入命令並將結果存儲在變量中。從shell腳本中的變量中刪除非ASCII字符
有一個非常特殊的情況,由於grep使用的分析邏輯,此變量可能具有非ascii字符。
問:如何從shell腳本中的這個變量中刪除這些非ascii字符,以便我可以在後續命令中使用該變量?
如果你正在使用bash,如果你的變量稱爲var
,然後
"${var//[^[:ascii:]]/}"
將展開爲var
,並刪除所有非ascii字符。所以:
var_non_ascii=${var//[^[:ascii:]]/}
應該做的。 (這絕對是最好的方法:沒有子shell,也沒有外部進程對bash的分支)。
假設你的變量VAR,試試這個:
var=$(echo $var | sed 's/[^\x00-\x7F]//g')
這應該刪除非ASCII字符
我正在選擇其他答案,因爲這不涉及外部過程。 Upvoted雖然:) – Sudar
+1不調用另一個進程 – Sudar