1. 程式人生 > >Linux命令——cut命令學習

Linux命令——cut命令學習

正如其名,cut的工作就是“剪”,具體的說就是在檔案中負責剪下資料用的。cut是以每一行為一個處理物件的,這種機制和sed是一樣的。

2、剪下依據

cut命令主要是接受三個定位方法:

第一,位元組(bytes),用選項-b

第二,字元(characters),用選項-c

第三,域(fields),用選項-f

例:

一,按位元組cut:

注意:一個空格算一個位元組,一個漢字算三個位元組

[[email protected] ~]# date

2011年08月11日 星期四20:44:52 EDT

[[email protected] ~]# date |cut -b 1-4 取前四個位元組

2011

[[email protected] ~]# date |cut -b 1-6

2011

[[email protected] ~]# date |cut -b 1-7 一個漢字算三個位元組

2011年

[[email protected] ~]# date |cut -b 1-10

2011年08

多個定位之間用逗號隔開:

[[email protected] ~]# date |cut -b 1-7,10

2011年8

[[email protected] ~]# date |cut -b 10,1-7 cut會先把-b後面所有的定位進行從小到大排序,然後再提取

2011年8

負號的使用:

[[email protected] ~]# date |cut -b -4

2011

[[email protected] ~]# date |cut -b 4-

1年08月11日 星期四21:05:30 EDT

[[email protected] ~]# date |cut -b -4,4-

2011年08月11日 星期四21:06:53 EDT

-4表示從第一個位元組到第四個位元組,而4-表示從第四個位元組到行尾。這兩種情況下,都包括了第4個位元組“1”。如果我執行date |cut -b -4,4-,會輸出整行,不會出現連續兩個重疊的1

二,按字元cut:

按字元cut相對比較簡單,中文字元和空格都算一個字元。

[[email protected] ~]# date |cut -c 1-5

2011年

[[email protected] ~]# date |cut -c 5,9,13

年月日

三、按域cut

以/etc/passwd檔案為例:

[[email protected] ~]# head -n5 /etc/passwd |cut -d : -f 1,3-5

root:0:0:root

bin:1:1:bin

daemon:2:2:daemon

adm:3:4:adm

lp:4:7:lp

-d指定域分隔符,-f 指定要剪出哪幾個域,這個與awk的輸出特定欄位功能一樣。

-d選項的預設間隔符就是製表符,所以當你就是要使用製表符的時候,完全就可以省略-d選項,而直接用-f來取域就可以了

如何分的清空格和製表符?

[[email protected] ~]# cat test 這個檔案各單詞間存在單個空格、製表符和多個空格

data11【單個空格 】data12 【製表符】data13

data21【多個空格】data22【單個空格】data23

data31 【單個空格 】data32 【 多個空格data33

[[email protected] ~]# sed -n l test 用sed命令可以讓製表符原形畢露~

data11 data12\tdata13$

data21 data22 data23$

data31 data32 data33$

[[email protected] ~]# cat test |cut -f 2

data13

data21 data22 data23

data31 data32 data33

[[email protected] ~]# cat test |cut -d " " -f 2 cut的間隔符只允許是一個字元

cut: the delimiter must be a single character

請嘗試執行“cut --help”來獲取更多資訊。

[[email protected] ~]# cat test |cut -d " " -f 2

data12 data13 中間那個空白字元是製表符

第一個空格後面還是空格,所以輸出空格

data32 單個空格後面就是data32

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

=========================================================================================================================

 cut命令從檔案的每一行剪下位元組、字元和欄位並將它們寫至標準輸出。它是以檔案的每一行作為處理物件的。

  命令格式:cut [選項] [範圍] 檔案。選項用來指定單位(位元組、字元還是欄位),範圍指定選項的位置。   常用的選項有:   -b:指定以位元組為單位顯示選中內容   -c:指定以字元為單位顯示選中內容   -f:指定以欄位為單位顯示選中內容   -d:指定欄位的分界符,預設為製表符   其它的選項還有-n(僅和-b選項一起使用)、-s(僅和-f選項一起使用)    範圍表示:   n:第n個位元組/字元/欄位   n-:從第n個位元組/字元/欄位到最後一個位元組/字元/欄位   n-m:從第n個位元組/字元/欄位到第m個位元組/字元/欄位,包括m   -m:從行的開頭到第m個位元組/字元/欄位,包括m   -:從行開頭到行的最後   一、顯示passwd檔案中使用者名稱、密碼、使用者ID和使用者目錄。 passwd檔案每行分為七列,以:為分隔符;這七列依次是使用者名稱、密碼、使用者ID、組ID、使用者描述、使用者目錄、使用者bash。由於passwd檔案內容過多,我們這裡用sed顯示其中的1-6行。     二、顯示前兩個位元組或前兩個字元    看起來-b選項和-c選項沒什麼區別嘛。。其實不然,若檔案內容有漢字就可以看出來兩者的差別了。    三、     你是不是有些疑惑:漢字不是佔兩個位元組麼?cut -b 1-2 test1正好是顯示兩個位元組呀。。不錯,網上有很多資料都是這麼說的,而且它們會告訴你用cut -b 1-3就可以完整的顯示出一個漢字,原因是cut -b 1-2以位元組為單位來處理,字元被“切成兩半”,因此無法正常顯示。   但是看了下面的圖片,你或許會有不同的看法:  呵呵。。實在不好意思,貌似從utf-8到gb2312的編碼轉換沒有成功,但是沒關係,這不影響我們對為什麼cut -b 1-2不能正確顯示漢字的判斷。  這個圖片就可以說明-b和-c選項的差別:我們用cut -b 1-2 test1時,沒有顯示出漢字,但是換成-c選項則可以顯示兩個漢字。這就是-b(位元組)和-c(字元)之間的區別。   我們看到編碼為utf-8的test1檔案第一行一共有5個漢字和3個字母,但wc -c統計是19個位元組,而編碼為iso-8859的test檔案統計為14個位元組!(wc -c在統計位元組時,結束符/換行符也作為一個位元組。) 這表明:在utf-8編碼下,漢字是佔三個位元組的!   大家可自己動手試驗一下,在utf-8編碼下,用cut -b 1-3可以顯示一個漢字,而在其它編碼如gb2312、iso-8859等編碼下,用cut -b 1-2就可以顯示一個漢字。

相關推薦

Linux命令——cut命令學習

正如其名,cut的工作就是“剪”,具體的說就是在檔案中負責剪下資料用的。cut是以每一行為一個處理物件的,這種機制和sed是一樣的。 2、剪下依據 cut命令主要是接受三個定位方法: 第一,位元組(bytes),用選項-b 第二,字元(characters),用選項-c 第三,域(fields),用選項-

linuxcut命令的用法_unix linux

[[email protected] programming]$ who rocrocket :0           2009-01-08 11:07 rocrocket pts/0        2009-01-08 11:23 (:0.0) rocrocket pts/1        200

LinuxCut命令詳解

cut是一個選取命令,就是將一段資料經過分析,取出我們想要的。一般來說,選取資訊通常是針對“行”來進行分析的,並不是整篇資訊分析的。 (1)其語法格式為:cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file]

Linuxcut命令用法詳解

  Linux下cut命令用法詳解                                                            原創:frozen_sucker(冰棍) 有時我們經常會遇到這樣一些問題:有一頁電話號碼薄,上面按順序規則地寫著人名、家庭

linuxcut命令的用法

cut是一個選取命令,就是將一段資料經過分析,取出我們想要的。一般來說,選取資訊通常是針對“行”來進行分析的,並不是整篇資訊分析的 (1)其語法格式為:cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file] 使用說

擷取命令cut命令、awk命令、sed命令

cut命令 擷取以製表符tab為分隔符的第一列 cut -f 1test.txt 擷取以":"為分隔符的第一列,如果比較規律的檔案,可以自己設定分隔符 cut -f 1 -d ':' tset.txt 擷取以“:”為分隔符的第一列和第三列 cut -f 1,3 -d ':' tset.txt &

Linux下常用命令之sed學習總結

linux sed sed命令 正則表達式 sed總結 Sed功能說明:Sed是linux下一個強大的文本文件處理工具,通過對文件增加、刪除、查找、查詢操作,配合正則表達式以實現工作中的各種需求。同時也是一名運維人員必須掌握的核心技能。---------------------------

Linux Shell腳本編程--cut命令

log 實用 shell腳本編程 單位 一個 span sbin usr x11 cut cut命令可以從一個文本文件或者文本流中提取文本列。 cut語法 [[email protected]/* */ ~]# cut -d‘分隔字符‘ -f fields

Linux文字分段裁剪命令cut(轉)

實例 分割 blog get 開頭 strong 一個 roc spa Linux cut命令用於顯示每行從開頭算起num1到num2的文字。 語法 cut [-bn] [file] cut [-c] [file] cut [-df] [file] 使用

linux cut命令

1年 linu 多個 文本 bsp date edt 字節 linux cut 1 cut命令處理的基本數據單元 同大多數文本處理工具一樣,cut也是以行為基本的數據單元的。 2 cut命令的用途 顧命思議,cut就是從行中cut出滿足條件的數據,返回的是滿足條件的數據。

linuxcut、sort_wc_uniq、tee_tr_split命令及一些特殊符號介紹

linux cut sort wc uniq tee shell特殊符號cut命令:1、* 任意個任意字符(這是一個通配符)2、? 任意一個字符3、 # 註釋字符4、 \ 脫義字符5、 | 管道符幾個和管道有關的命令:1、cut 分割,-d 分隔符 -f 指定段號 -c 指定第幾

linux基本命令——cut

pan login syn down 一個 /etc/ pass bin inux cut (選項)(參數)  cut是用來處理文本的工具,可以用來取出某些特定的字段。在選取字段的時候“1,3”代表第1個和第3個,“1-3”代表第一個到第三個,“-3”代表從開始到第三個,“

linux命令 cut grep

body ima clas .com pos 使用 log linu blog cut 處理log數據等,切出想要的信息。 cut -d ‘分隔符’ -f ‘第幾段’ 和-f同時使用 -c 字符區間 截取字符區間

linux目錄操作命令大全 linux系統開發學習

dir 一次 時間 掛載 變換 方式 遞歸 介紹 inux Linux的目錄結構為樹形結構,最頂級的目錄為根目錄,其他目錄通過掛載添加到樹中,通過解除掛載來進行刪除,除此之外,還可以對目錄進行其他處理操作,常用的目錄處理命令如下:1. ls命令(列出目錄)常用用法:ls –

Linux學習總結(六)-su命令 sudo 命令 限制root遠程登錄

su - rest 一次 com 註冊 情況 保存配置文件 所有權 是把 root 用戶擁有至高無上的權利,那麽我們運維人員是不是直接在root用戶下處理所有問題呢?答案是否定的,權力越大,責任越大,人是會犯錯的,因此我們要在不影響我們的工作情況下,盡量限制我們的權力,以免

20165221 Linux安裝及命令入門學習

ubuntu 技術分享 .com 聯想筆記本 linux安裝 strong 命令 學習 www. 安裝過程 按照圖文教程,進行操作,遇到如下問題。 1.安裝ubuntu時從官網下載不成功。 最後在同學的幫助下,通過中文版網址入口進入,完成下載。 2.BIOS未恢復出廠設

學習linux成果及命令,總結一下(二)

linux 命令 總結 目錄 自學 一、目錄/etc/crontab 計劃任務配置文件/etc/init.d/crond 計劃任務啟動結束腳本/var/spool/cron 用戶cron任務的配置文件存放目錄/etc/rsyslog.conf 決定將內核消息及各種系統程序消息記錄到什麽

Linux centos7 shell特殊符號、cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符號

ear 兩個 XA style 統計字符 uniq login 出現 span 一、shell特殊符號、cut命令 *任意字符 [root@davery ~]# ls /tmp/*.txt/tmp/1.txt /tmp/2.txt /tmp/q.txt[root@d

Linux學習並不難》Linux常用操作命令(10):cal命令顯示日歷信息

Linux cal 日歷 8.10 《Linux學習並不難》Linux常用操作命令(10):cal命令顯示日歷信息 使用cal命令可以顯示計算機系統的日歷。 命令語法: cal [選項] [[[日] 月] 年] 命令中各選項的含義如表所示。 選項 選項含義 -j顯示

Linux學習並不難》Linux常用操作命令(6):uname命令顯示計算機和系統相關信息

Linux8.6 《Linux學習並不難》Linux常用操作命令(6):uname命令顯示計算機和系統相關信息 使用uname命令可以顯示計算機以及操作系統的相關信息,比如計算機硬件架構、內核發行號、操作系統名稱、計算機主機名等。 命令語法: uname [選項] 命令中各選項的