今天寫sh處理文本,處理完后程序報(bào)錯(cuò),用 cat -A filename 查看了下源文件瓦宜,發(fā)現(xiàn)大量^m
^M是windos的dos文件格式特有的換行符篱蝇,屬于特殊字符贺待,應(yīng)該沒(méi)有被程序識(shí)別直接報(bào)錯(cuò)了,找了很久零截,最后發(fā)現(xiàn)tr命令能夠解決問(wèn)題麸塞,分享記錄下
corpId=$(cat Properties.setting | awk -F" = " '/corpId/ {print $2}'| tr -d "[:cntrl:]")
這條命令第一部分cat文件,第二部分根據(jù)格式用awk查出所需值瞻润,但有^m喘垂,第三部分用tr -d來(lái)刪除指定的字符甜刻,可刪除的類別如下圖所示
man tr看到如上SET,可以查找出各種字符正勒,剛開始用了:print:能夠解決問(wèn)題得院,但是,后來(lái)發(fā)現(xiàn)中文也會(huì)被過(guò)濾掉章贞,所以用了[:cntrl:]完美解決問(wèn)題祥绞。