我寫過一個shell腳本,它讀取文件並獲取執行特定任務所需的文件路徑,但如果文件路徑包含任何特殊字符沒有服用完整的路徑如何在shell中獲取特殊字符作爲普通字符串
EG的路徑\網絡\搭\ AB 我得到的值是\ WEB AKE \ AB這治療\ T作爲標籤和打印標籤那麼如何避免這種
我的代碼 grepresult = grep "Cannot " input.txt | cut -f 2,3 -d":"
回聲$ grepresult
所以,請幫助我怎樣才能得到的特殊字符轉換成字符串
我寫過一個shell腳本,它讀取文件並獲取執行特定任務所需的文件路徑,但如果文件路徑包含任何特殊字符沒有服用完整的路徑如何在shell中獲取特殊字符作爲普通字符串
EG的路徑\網絡\搭\ AB 我得到的值是\ WEB AKE \ AB這治療\ T作爲標籤和打印標籤那麼如何避免這種
我的代碼 grepresult = grep "Cannot " input.txt | cut -f 2,3 -d":"
回聲$ grepresult
所以,請幫助我怎樣才能得到的特殊字符轉換成字符串
在POSIX兼容的外殼,有一些例外,反斜線的解釋是默認啓用。
的問題,因爲你知道的是,shell解釋\
以其特殊的meaning.To在輸出反斜線,只需反斜線它。
輸入
$ grepresult="sometestt\n\b\a"
腳本
echo "${grepresult//\\/\\\\}"
#since \ has special meaning here as well, `\\` makes the character `\`
應該做的伎倆。在Shell Parameter Substitution中查找${var//Pattern/Replacement}
。
輸出
$ echo "${grepresult//\\/\\\\}"
sometestt\n\b\a
特殊字符存儲在正確的變量grepresult
,它是echo
誰轉換\t
到TAB
嘗試:
echo -E $grepresult
其中-E
防止echo
從做反斜槓