awk字符串去掉空格 shell中如何去掉字符串中間的空格?
shell中如何去掉字符串中間的空格?1、刪除行首空格sed ‘s/^[ t]*//g"說明:第一個(gè)/的左邊是s表示替換,即將空格替換為空。第一個(gè)/的右邊是表示后面的以xx開頭。中括號(hào)表示“或”,空格
shell中如何去掉字符串中間的空格?
1、刪除行首空格
sed ‘s/^[ t]*//g"
說明:
第一個(gè)/的左邊是s表示替換,即將空格替換為空。
第一個(gè)/的右邊是表示后面的以xx開頭。
中括號(hào)表示“或”,空格或tab中的任意一種。這是正則表達(dá)式的規(guī)范。
中括號(hào)右邊是*,表示一個(gè)或多個(gè)。
第二個(gè)和第三個(gè)中間沒有東西,表示空
g表示替換原來buffer(緩沖區(qū))中的,sed在處理字符串的時(shí)候并不對(duì)源文件進(jìn)行直接處理,先創(chuàng)建一個(gè)buffer,但是加g表示對(duì)原buffer進(jìn)行替換
整體的意思是:用空字符去替換一個(gè)或多個(gè)用空格或tab開頭的本體字符串
2、刪除行末空格
sed ‘s/[ t]*$//g"
和上面稍微有些不同是前面刪除了^符,在后面加上了美元符,這表示以xx結(jié)尾的字符串為對(duì)象。
但是要注意在KSH中,Tab并不是t而是直接打入一個(gè)Tab就可以了。
3、刪除所有的空格
sed s/[[:space:]]//g
去除字符串前后空格的辦法?
這是個(gè)正則表達(dá)式/(正則)/g//之間的是正則,后面的g表示全局匹配 ^s ,^表示開頭,s是空格, 匹配1或多個(gè)字符,所以這里的意思就是匹配開頭的1或多個(gè)空格同理s $表示匹配結(jié)尾的1或多個(gè)空格,$表字符串結(jié)尾 中間的|表示匹配左邊或者右邊的正則,所以一個(gè)字符串只要開頭或結(jié)尾有空格,空格的部分就會(huì)被匹配到 然后第二個(gè)參數(shù)""是匹配到的內(nèi)容被替換的內(nèi)容,也就是替換成空串