shell字符串截取之cut命令

cut命令主要是接受三個定位方法:
第一,字節(bytes),用選項-b
第二,字符(characters),用選項-c
第三,域(fields),用選項-f
一、cut -b
這裏寫圖片描述
如上圖所示,-b後邊可以設定截取哪個字節
-b支持形如3-5的寫法,而且多個定位之間用逗號隔開就可以:
這裏寫圖片描述
需要注意的是-b選項,執行此命令時,cut會先把-b後面所有的定位進行從小到大排序,然後再提取。所以千萬不能顛倒定位的順序。例:
這裏寫圖片描述
-b -4表示從第一個字節到第三個字節,而-b 4-表示從第三個字節到行尾,
-b -4,4-表示從頭輸到尾
這裏寫圖片描述

二、cut -c
cut -c 1-4代表輸出字符互傳1-4之間的字符
這裏寫圖片描述
cut -c 1,4代表輸出字符串中第一個和第四個字符
cut -c 1-4代表輸出字符互傳1-4之間的字符
這裏寫圖片描述
有一個和-b 相似的情況:
這裏寫圖片描述
輸出結果相同,那麼有什麼區別,如下圖所示:
這裏寫圖片描述
由於-b 是以字節爲單位的,所以在輸出漢子的時候就不行了,而-c是以字符爲單位的,完全可以輸出成功。
三、cut -f
爲什麼會有“域”的提取呢,因爲剛纔提到的-b和-c只能在固定格式的文檔中提取信息,而對於非固定格式的信息則束手無策。這時候“域”就派上用場了。
已/etc/passwd中的內容爲例:(這裏取前五行)
這裏寫圖片描述
截取第一個域中的字符串:(-d選項設定以:爲間隔符,-f 後設定哪個域)
這裏寫圖片描述
當然也可以進行如下操作:
這裏寫圖片描述

發佈了79 篇原創文章 · 獲贊 18 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章