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