linux下刪除檔案的空行

來源:互聯網
上載者:User
文章目錄
  • 1:使用sed的命令
  • 2:用vim命令
  • 3:shell指令碼

在網上找了下,探索方法其實很多,這裡只是匯總下,再用上我的測試結果

1:使用sed的命令

dfs為帶有空行的檔案名稱

A:sed -i '/^\s*$/d' dfs

註:-i選項為不列印出來檔案修改後的內容,直接修改了檔案,不加-i會列印出修改後的內容,但是檔案本身的內容並沒改變

B:sed '/^$/d' dfs     

註:^代表開頭$代表結尾d刪除,這句話代表開頭和結尾中間沒有任何字元的行,刪除

2:用vim命令

看到網友有說g/^\s*$/g可以實現,我試了下發現不行,出現下面不能遞迴的錯誤

:g/^\s*$/g                                  
E147: :global 不能遞迴執行
請按 ENTER 或其它命令繼續

但是發現用g/^\s*$/可以列印空行所在的位置

:g/^\s*$/
  4 
  6 
  8 
 11 
 13 
請按 ENTER 或其它命令繼續

關於vim下的命令歡迎網友提出更多意見,我知道肯定可以實現的

參照網友的評論得到了方法,我知道sed下用d刪除,沒想到vim下也是,慚愧....多謝兩位評論的網友哈!

vim下刪除空行的,命令

:g/^$/d  或者  :g/^\s*$/d

3:shell指令碼

if [ $# -ge 1 ];then
for each in $@
do
if [ -f $each ];then
name="tmp_$each"
sed -e '/^$/d' $each >$name
rm $each
mv $name $each
else
echo "rmnone:no such file $each"
fi
done
else
echo "rmnone:no input file"
exit
fi

這是網友的指令碼,我沒測試,為方便起見,我們可以將該shell程式賦予可執行權並放入/bin下,這樣我們就可以像使用shell命令一樣使用該工具

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.