linux下的格式問題,與讀取不了最後一行

2021-06-19 12:36:40 字數 1584 閱讀 1713



linux

下,如果需要在

vim中檢視

^m,需要使用如下命令:

e ++ff=unix %

。有時候,我們在

linux

中開啟曾在

win

中編輯過的檔案時,會在行尾看到

^m字元。雖然,這並不影響什麼,但心裡面還是有點不痛快。如果想要刪除這些

^m 字元,可以使用

vim

來輕鬆搞定它。

在vim

的命令模式中輸入

:%s/^m$//g

後,回車即會自動刪除該檔案中的所有

^m 字元。

^m 注意要用

ctrl + v ctrl + m

來輸入

一、windows

的檔案到

linux

下的轉換方法:

1. 用sed

命令替換

sed -e 's/^m//g' original.txt > target.txt

(注意^m

在linux/unix

下是這樣輸入的:先按

ctrl+v,

接著按ctrl+shift+m

,呵呵~~

其實俺主要就是為了記錄一下這個輸入方法)

2. 在

vi中替換

:%s/^m//g

3.sed

命令替換

sed -e 's/.$//' dos.txt > linux.txt

二、linux

文字傳到

windows

系統,轉換方法:

sed -e 's/$/\r/' 1pnet.txt >dos.txt

windows

使用\r\n

作為行結尾,而

unix

使用\n

作為行結尾

使用notepad

編輯的檔案,如果最後一行沒有回車,採用二進位制方式上傳到

unix

後,因為最後一行沒有

\n,會被認為是不完整的檔案

迴圈讀到最後一行後,認為達到檔案結尾,那個

read server

會返回假,迴圈結束。

1、最好使用

dos2unix

命令轉換為

unix格式2

、實在不行,只能在

while

迴圈之後,再新增乙個額外處理

如果存在乙個文字

$,使用

while read line

去讀取時發現,最後一行無法讀出:

while

read line

doecho

"$line 1 n"

done

<$

如何解決這種情況呢,可以考慮以下的方法:

done

=false

until

$done 

doread

||done

=true

echo

"$reply 1 n"

done

<$

linux與windows下讀取專案檔案的區別

環境 linux 容器 websphere 框架 ssh 描述 最近在做專案的時候發現,在我讀取專案檔案的時候出錯了,而之前在windows平台是好的 解決 後來發現原因是由於在windows和linux下讀取當前應用的資源檔案有點小區別 windows basepath this.getreque...

linux下的命令格式

命令格式 命令 選項 引數 帶中括號的是可選項,個別命令不遵循此格式,多個選項時,可以寫一起 簡化選項,完整選項 a 等於 all 顯示當前目錄下所有目錄,有的有簡化選項 用ls命令解釋命令格式 沒有選擇選項,就顯示當前目錄下的,顯示檔案內容 a all顯示目錄下所有檔案,包括隱藏檔案,隱藏檔案以....

hadoop讀取文字格式的問題(讀取快取檔案)

定義快取檔案 01 小公尺 02 華為 03 格力 檔名pd.txt driver 裡面新增快取資料夾路徑 job.addcachefile new uri file c gao pd.txt mappdmap new hashmap override protected void setup co...