Linux 判斷並修復檔案沒有結束行 noeol

2021-08-21 12:25:37 字數 783 閱讀 8641

有些配置檔案或者指令碼有時候會出現最後一行沒有結束符的情況,如下,

[root@centos-7-2 /home]# cat noeol.txt 

/var/log/my.log [root@centos-7-2 /home]#

最後一行和提示符處在同一行。這樣會導致配置檔案格式錯誤,如果是指令碼,則無法執行最後一條語句,因此肯定是有問題的。

目前尚無專門用於處理該問題的命令,可以使用diff命令比較後出現的關鍵字no newline來輔助判斷。先看下使用diff命令比較後的差異內容,

0a1,5

> /var/log/my.log

\ no newline at

endof

file

[root@centos-7-2 /home]#

可見,對於沒有結束行的檔案會有特別提示,因此可以使用以下命令鑑別,

if diff /dev/null $ | tail -1 | grep '^\\ no newline' > /dev/null;then

echo

"no eol"

fi

至於修復的話,直接往檔案裡寫入空字元即可,如下,

if diff /dev/null $ | tail -1 | grep '^\\ no newline' > /dev/null;then

echo >> $

fi

echo會自動在檔案最後追加結束符。

使用fsck命令檢查並修復linux檔案系統

今天遇到乙個奇怪的問題 非正常重啟後,或熱插拔主機板介面裝置?導致滑鼠,鍵盤失去響應,重新插拔usb介面後,滑鼠鍵盤電源燈無法點亮,螢幕無響應。再次重啟後出現黑屏,提示錯誤如下 大意就是 dev sda2分割槽包含乙個檔案系統錯誤,inodes 在被損壞的孤立的節點表中。要用fsck這個命令修復。按...

只有mdf檔案而沒有ldf檔案修復方法

1.建乙個同名的資料庫 2 修改伺服器設定 允許多系統目錄進行直接修改 設定 允許多系統目錄進行直接修改 exec sp configure allow updates 1 reconfigure with override 3 停止sql server 4 用原mdf檔案覆蓋新建庫的資料庫檔案 5...

判斷檔案並計算單詞

需求 1.判斷所給目錄內哪些二級目錄下有沒有text.txt檔案。2.有text.txt檔案的二級目錄,計算出該test.txt檔案裡面所給出單詞的次數。3.假如指令碼名字為1.sh,執行指令碼的格式為 1.sh 123 root,其中123為目錄名字,而root為要計算數量的單詞。bin bash...