sed刪除空行(包括由空格組成的空行)

2021-07-10 05:36:45 字數 1034 閱讀 8364

sed實戰之——刪除空行(包括由空格組成的空行)

首先要隆重介紹我們的測試檔案,因為這是非常特殊的檔案:

forrest@ubuntu:~/public$ cat -v wuhui.txt 

1^m ^m

2^m ^m

3^m ^m

4^m ^m

5^m ^m

6^m ^m

^m

我用cat -v選項,顯示不可見字元。^m是換行的意思。不過這是不正常的。正常的檔案換行符用-v也是看不到的。

這裡如下四種空行:

1、單獨乙個換行符

2、n個空格+換行

3、n個tab+換行

4、n個(空格&tab)+換行

對於這個檔案,如果使用:

forrest@ubuntu:~/public$ sed /^$/d wuhui.txt 1

2 34 5

6forrest@ubuntu:~/public$ 

是沒有效果的。因為由於特殊字元的存在,空行並不是真的空行(^$)。google了一下,可以使用這個命令來匹配:

forrest@ubuntu:~/public$ sed /^[[:space:]]*$/d wuhui.txt 1

2 34 5

6forrest@ubuntu:~/public$ 

[[:space:]]表示空格或者tab的集合,這裡有點意外的是居然匹配了^m這個不可見的換行符號。另外,注意到[[:space:]]後面跟著乙個*,表示匹配0個或多個。

[[:space:]]可以用\s表示,如下:

forrest@ubuntu:~/public$ sed '/^\s*$/d' wuhui.txt 1

2 34 5

6 forrest@ubuntu:~/public$

但是使用轉義字元,一定要對命令新增引號:

forrest@ubuntu:~/public$ sed /^\s*$/d wuhui.txt 1

2 34 5

6forrest@ubuntu:~/public$ 

sed之新增空行

一 每行前後新增空行 1.每行後面新增一行空行 sed g tmp 每行前面新增一行空行 sed tmp 2.每行後面新增兩行空行 sed g g tmp 每行前面新增兩行空行 sed tmp 3.每行後面新增三行空行 sed g g g tmp 每行前面新增三行空行 sed tmp 依次類推,新增...

Linux中刪除空行及

linux中刪除文字檔案中所有的空行 2012 04 06 10 34 28 分類 linux 1 刪除空行 1 直接用vi進行操作 g d 儲存便可 2 sed e d 如果上面的sed不行,可以使用 sed e s d 2.刪除注釋 1 用tr命令 grep v etc snmp snmpd.c...

Linux刪除空行的方法

在linux上處理一些資料檔案時,有時候需要將其中的空行過濾掉,系統中提供的各種工具都可以完成這個功能。將常用的介紹如下吧 1.grep view code bash 1 23grep.data.txt grep v data.txt grep data.txt 2.sed view code ba...