Shell去除空格和空行的方法

1、去除空行的方法正則表達式

有時咱們在處理和查看文件時,常常會有不少空行,爲了美觀或是有須要時,就有必要把這些除行去掉了,方法以下:ide

1)用tr命令spa


代碼以下:對象


cat 文件名 |tr -s ‘\n'
字符串


2)用sed命令it


代碼以下:class


cat 文件名 |sed ‘/^$/d'
awk


3)用awk命令sed


代碼以下:grep


cat 文件名 |awk ‘{if($0!=」")print}'
cat 文件名 |awk ‘{if(length !=0) print $0}'


4)用grep命令


代碼以下:


grep -v 「^$」 文件名



2、去除空格的方法


下面介紹sed是怎樣實現的,固然awk一樣能夠。

一、刪除行首空格


代碼以下:


sed ‘s/^[ \t]*//g'


說明:

第一個/的左邊是s表示替換,即將空格替換爲空。
第一個/的右邊是表示後面的以xx開頭。
中括號表示「或」,空格或tab中的任意一種。這是正則表達式的規範。
中括號右邊是*,表示一個或多個。

第二個和第三個\中間沒有東西,表示空

g表示替換原來buffer(緩衝區)中的,sed在處理字符串的時候並不對源文件進行直接處理,先建立一個buffer,可是加g表示對原buffer進行替換

總體的意思是:用空字符去替換一個或多個用空格或tab開頭的本體字符串

二、刪除行末空格


代碼以下:


sed ‘s/[ \t]*$//g'


和上面稍微有些不一樣是前面刪除了^符,在後面加上了美圓符,這表示以xx結尾的字符串爲對象。


可是要注意在KSH中,Tab並非\t而是直接打入一個Tab就能夠了。

三、刪除全部的空格


代碼以下:

sed s/[[:space:]]//g

相關文章
相關標籤/搜索