Shell實(shí)用技巧:快速去除字符串中的空格
在整理詞庫(kù)的過程中遇到 一個(gè)問題,有些其實(shí)是同一個(gè)關(guān)鍵詞之關(guān)有空格的話,無法正常被去重,那么有沒有辦法能快快速去除這些字符中間的空格呢?經(jīng)過百度一番,找到一個(gè)解決辦法,記錄一下。
效果如下圖所示,圖上半部分是示例文本,下半部分就是用shell去掉空格后的效果。其中用到就是下面第3個(gè)方法。

在UNIX上使用sed命令進(jìn)行字符串處理中常常遇到的問題就是行首行尾的空格怎么刪除。
下面介紹sed是怎樣實(shí)現(xiàn)的,當(dāng)然awk同樣可以。
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
相關(guān)文章
bash?shell?自定義函數(shù)命令持久化生效問題
這篇文章主要介紹了bash?shell?自定義函數(shù)命令持久化生效,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
Linux rpm命令參數(shù)使用大全(經(jīng)典)
RPM是RedHat Package Manager(RedHat軟件包管理工具)類似Windows里面的“添加/刪除程序”,本篇文章給大家介紹linux rpm命令參數(shù)使用大全,感興趣的朋友一起學(xué)習(xí)吧2015-11-11
awk正則表達(dá)式和內(nèi)置函數(shù)的使用方法實(shí)例詳解
這篇文章主要介紹了awk正則表達(dá)式和內(nèi)置函數(shù)的使用方法實(shí)例詳解,本文總結(jié)了15個(gè)使用例子,需要的朋友可以參考下2014-12-12
Linux文本查看命令及其選項(xiàng)詳解(cat,head,tail)
這篇文章主要介紹了Linux文本查看命令及其選項(xiàng)詳解(cat,head,tail),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
Shell兩種for循環(huán)對(duì)應(yīng)實(shí)現(xiàn)方法解析
這篇文章主要介紹了Shell兩種for循環(huán)對(duì)應(yīng)實(shí)現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
詳談Linux寫時(shí)拷貝技術(shù)(copy-on-write)必看篇
下面小編就為大家?guī)硪黄斦凩inux寫時(shí)拷貝技術(shù)(copy-on-write)必看篇。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
shell 中數(shù)學(xué)計(jì)算總結(jié)
shell中的賦值和操作默認(rèn)都是字符串處理,在此記下shell中進(jìn)行數(shù)學(xué)運(yùn)算的幾個(gè)特殊方法,以后用到的時(shí)候可以來看,呵呵2012-09-09

