在UNIX上使用sed命令進行字符串處理中常常遇到的問題就是行首行尾的空格怎么刪除。
下面介紹sed是怎樣實現的,當然awk同樣可以。
1、刪除行首空格
復制代碼代碼如下:sed ‘s/^[ /t]*//g'說明:
第一個/的左邊是s表示替換,即將空格替換為空。第一個/的右邊是表示后面的以xx開頭。中括號表示“或”,空格或tab中的任意一種。這是正則表達式的規范。中括號右邊是*,表示一個或多個。
第二個和第三個/中間沒有東西,表示空
g表示替換原來buffer(緩沖區)中的,sed在處理字符串的時候并不對源文件進行直接處理,先創建一個buffer,但是加g表示對原buffer進行替換
整體的意思是:用空字符去替換一個或多個用空格或tab開頭的本體字符串
2、刪除行末空格
復制代碼代碼如下:sed ‘s/[ /t]*$//g'和上面稍微有些不同是前面刪除了^符,在后面加上了美元符,這表示以xx結尾的字符串為對象。但是要注意在KSH中,Tab并不是/t而是直接打入一個Tab就可以了。
3、刪除所有的空格
復制代碼代碼如下:sed s/[[:space:]]//g新聞熱點
疑難解答