cut是以每一行為一個處理對象的,這種機制和sed一樣。 cut接受三個定位方法: 1)byte: -b 2)characters: -c 3)fields: -d eg:提取第3,4,5,9的位元組: cut -b 3-5,9 註意:cut命令如果使用-b選項,執行時會先把-b後面所有的定位進行從小 ...
cut是以每一行為一個處理對象的,這種機制和sed一樣。
cut接受三個定位方法:
1)byte: -b
2)characters: -c
3)fields: -d
eg:提取第3,4,5,9的位元組: cut -b 3-5,9
註意:cut命令如果使用-b選項,執行時會先把-b後面所有的定位進行從小到大排序,然後再提取,不能顛倒順序。
-3 表示從第一位元組到第三位元組;
3- 表示從第三位元組到結尾。
對於中文提取,-c 會以字元為單位,輸出正常;-b以位元組(8位二進位)計算。
當遇到多位元組字元時,使用-n選項,不會將多位元組字元拆開。cut -nb 1,2,3
對於非固定格式信息,需要域。之前需要先設置間隔符,再提取第幾個域。
cut -d : -f 1
-d設置間隔符為:,-f 1 為提取第一個域。
註意:如果遇到空格和製表符時,怎麼辨認?
先檢查這段空格是由空格組成還是製表符組成:
cat tab_space.txt
sed -n l tab_space,txt
如果是製表位(TAB),就會顯示\t, 如果是空格,就會原樣顯示。(sed中n後面的l是小寫的L)
cut -d 用什麼符號表示製表符或空格?
cut -d 預設間隔為製表符,可以省略。若設置空格為間隔符,則 cut -d ' ' -f 4
(兩個單引號中要有一個空格)
而且只能在-d 後面設置一個空格,不允許有多個空格。cut允許的間隔符是一個字元。
參考:http://blog.sina.con/cn/s/blog_5e77c61f0100hqky.html