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...