linux-模擬dos2unix命令
雖然我不是運維工程師,但是由於學習linux和shell腳本也遇到過了一些有趣的問題,例如我們常常把window環境下的文本文件上傳到linux上,由於2者結束符的不同,有時候會出現配置問題 因為linux並不認識原有window環境結束符,從而在原有結束符下重新添加結束符,我們使用 cat -v -E test.txt 查看數據 -v 是隱藏字符 -E是 結束符顯示,數據如下 www.2cto.com
395439881^M$ ^M 是window文件的結束字符在linux一種顯示,$是linux文件的結束字符
395423434^M$
395468635^M$
395436444^M$
395463623^M$
好 下面我們替換掉window下的結束符,否則不能正常處理,我們可以采用以下幾種方法處理 www.2cto.com
cat test.txt | tr -d '\r' | cat -v 我們使用cat -v查看一下是否已經成功替換
395439881
395423434
395468635
395436444
395463623
如果隱藏字符不是\r怎麼辦
cat -v test.txt | sed 's:\(\^\w\+\)::' | cat -v
395439881
395423434
395468635
395436444
395463623這裡注意cat -v 可能將隱藏字符以特殊方式顯示 因此通過管道傳遞時可以直接替換掉,
這裡cat -v後使用\r是無法代表window的結束符了,轉化成……M
cat test.txt | sed 's:\r::' | cat -v
如果有dos2unix命令是最簡單的了