Shell實用技巧:快速去除字串中的空格_linux shell

來源:互聯網
上載者:User

在整理詞庫的過程中遇到 一個問題,有些其實是同一個關鍵詞之關有空格的話,無法正常被去重,那麼有沒有辦法能快快速去除這些字元中間的空格呢?經過百度一番,找到一個解決辦法,記錄一下。

效果如下圖所示,圖上半部分是樣本文本,下半部分就是用shell去掉空格後的效果。其中用到就是下面第3個方法。

在UNIX上使用sed命令進行字串處理中常常遇到的問題就是行首行尾的空格怎麼刪除。

下面介紹sed是怎樣實現的,當然awk同樣可以。

1、刪除行首空格

複製代碼 代碼如下:

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

說明:

第一個/的左邊是s表示替換,即將空格替換為空白。
第一個/的右邊是表示後面的以xx開頭。
中括弧表示“或”,空格或tab中的任意一種。這是Regex的規範。
中括弧右邊是*,表示一個或多個。

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

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

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

2、刪除行末空格

複製代碼 代碼如下:

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

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

但是要注意在KSH中,Tab並不是\t而是直接打入一個Tab就可以了。

3、刪除所有的空格

複製代碼 代碼如下:

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.