shell自动生成的文件有一个问号的后缀
寫了一個腳本,自動處理一個文件。
?
rm -f session.log
rm -f link
wget ftp://hostname/f:/ddn/session.log
egrep '^N[[:digit:]]|^D[1-4]' session.log >>link
egrep -c '^N[[:digit:]]|^D[1-4]' session.log >>link
egrep -v 'ACT/UP' link>>link
ls -l session.log >>link
gedit link
?
結果下載下來的session.log的文件名變成了加了一個奇怪字符,link變成了link?如下圖。
后續對link session.log文件的處理就會提示無法找到相應的文件。
搜了半天沒有找到相應的中文資料。
這里這種情況的出現是因為,腳本是在windows下編寫的,然后傳到linux上運行,而windows下的斷行符是^M$ ?linux下的斷行符是$linux運行的時候無法識別$之前的^M,所以顯示了奇怪的字符。
如下圖所示
?
?
要將a.txt里的^M去掉并寫入b.txt,則使用如下指令cat a.txt | tr -d "^M" > b.txt
注意:語句中的^M是通過ctrl+V, ctrl+M輸入的。特指/r字符
?1.windows中的換行符是\r\n,
2. linux/unix下的換行符是\n。
其中:
回車符:\r=0x0d??(13)????????? return; #回車(carriage return)??
換行符:\n=0x0a (10)???????????newline。#換行(newline)
總結
以上是生活随笔為你收集整理的shell自动生成的文件有一个问号的后缀的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从未知到2019年的文章汇总
- 下一篇: 你为什么喜欢VIM?