1. 程式人生 > >Linux下cut命令用法詳解

Linux下cut命令用法詳解

 

Linuxcut命令用法詳解

                                                           原創:frozen_sucker(冰棍)

有時我們經常會遇到這樣一些問題:有一頁電話號碼薄,上面按順序規則地寫著人名、家庭住址、電話、備註等,此時我們只想取出所有人的名字和其對應的電話號碼,你有幾種方法可以實現呢?

以下內容歡迎轉載,但請保留作者名號及出處,謝謝!

確實這種縱向定位的方式用常規辦法難以實現,這時,cut就可以大顯身手了。

What’s cut?

子曰:cut命令可以從一個文字檔案或者文字流中提取文字列。

命令用法:

cut -b list [-n] [file ...]

cut -c list [file ...]

cut -f list [-d delim][-s][file ...]

l上面的-b-c-f分別表示位元組、字元、欄位(即bytecharacterfield);

llist表示-b-c-f操作範圍,-n常常表示具體數字;

lfile表示的自然是要操作的文字檔案的名稱;

ldelim(英文全寫:delimiter)表示分隔符,預設情況下為TAB

l-s表示不包括那些不含分隔符的行(這樣有利於去掉註釋和標題)

上面三種方式中,表示從指定的範圍中提取位元組(-b)、或字元(-c

)、或欄位(-f)。

範圍的表示方法:

N

只有第N項

N-

從第N項一直到行尾

N-M

從第N項到第M項(包括M)

-M

從一行的開始到第M項(包括M)

-

從一行的開始到結束的所有項

 

下面是例項,先以較簡單的“命令用法”中提及的第二條開始講起:

interrupts檔案中的字元排列非常齊整,正適合我們切豆腐。

但這裡我們只對兩個數字列感興趣,用法如下:

裡面還有一些不需要的內容,精減一下:

關於正則表示式的使用,請自行查閱相關資料。

合到一起:

哇,果然夠帥!!

不相鄰列的截選又應該如何做呢?

這種方式需要事先確定佔多少個字元位置,不僅麻煩,而且容易出錯。

下面的問題該怎麼去做?

這就是第二講:使用cut –f提取文字中的欄位。

cut –c主要是用來在固定字元位置或個數的文字檔案中提取,對於上面的例子就顯得無能為力了。仔細觀察,發現passwd檔案有個規律,就是以冒號來區分不同的段的文字,於是。。。

怎麼樣,好玩吧~!

繼續,建立一個文字檔案,名為a.txt,名字有點土,湊合著用吧。

A1B1C1所代表的行字元之間均以TAB分隔,D1卻是以空格來分開的。

看到-s的作用了嗎?(因為第一行不含有任何TAB字元,所以直接被剔除了),而最後一行(D1),是以空格區分間距,所以也不合要求。

多了個引數,這個我沒講,只要你的智商比範偉高一點點,就肯定能猜出來啦。^_^

好了,下面是最後一個用法的講解了:

因為虛擬終端下無法顯示漢字,所以我只好回到圖形下,截圖就成這個白不垃圾的樣子啦,忍忍吧,就快講完了。

在這個檔案中,每個漢字都是用半形空格分隔的。

cut –c已經成功了,下面試試cut –b怎麼樣?

沒有反應,why

原因在於漢字本身是雙位元組的,cut –c把漢字“我”當成一個字元來處理,而cut –b是以位元組來處理,把“我”拆成了兩個位元組,結果是字元被“切成兩半”,因此無法正常顯示。

原因找到了,要怎麼辦才好呢?

!!!搞定。

OKall is done。就到這裡吧,休息,休息。。。

相關推薦

Linuxcut命令用法

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

Linuxdiff命令用法

大家好,我是良許。 我們在平時工作的時候,經常要知道兩個檔案之間,以及同個檔案不同版本之間有何異同點。在 Windows 下,有 beyond compare 這個好用的工具,而在 Linux 下,也有很多很強大的工具,良許之前也寫過一篇文章介紹: [Linux下9種優秀的程式碼比對工具推薦](https

Linux中ln命令用法

硬連線指向的是節點(inode),是已存在檔案的另一個名字,修改其中一個,與其連線的檔案同時被修改;對硬連結檔案進行讀寫和刪除操作時候,效果和符號連結相同。但如果我們刪除硬連結檔案的原始檔,硬連結檔案

(轉)linux paste命令用法

--help 分類 chroot 幫助 情況下 alias query 技術分享 一次 linux paste命令用法詳解原文:http://www.xfcodes.com/linuxcmd/mulu/10211.htmlinux下paste命令,可用於合並文件的列。 功能

Xshell拖拽檔案到linux(rz和sz命令用法

在linux中rz 和 sz 命令允許開發板與主機通過串列埠進行傳遞檔案了,下面我們就來簡單的介紹一下rz 和 sz 命令的例子。 rz,sz是Linux/Unix同Windows進行ZModem檔案傳輸的命令列工具。 優點就是不用再開一個sftp工具登入上去上傳下

linux wget 命令用法(附例項說明)

Linux wget是一個下載檔案的工具,它用在命令列下。對於Linux使用者是必不可少的工具,尤其對於網路管理員,經常要下載一些軟體或從遠端伺服器恢復備份到本地伺服器。如果我們使用虛擬主機,處理這樣的事務我們只能先從遠端伺服器下載到我們電腦磁碟,然後再用ftp工具上傳到

linux wget 命令用法

Linux wget是一個下載檔案的工具,它用在命令列下。對於Linux使用者是必不可少的工具,尤其對於網路管理員,經常要下載一些軟體或從遠端伺服器恢復備份到本地伺服器。如果我們使用虛擬主機,處理這樣的事務我們只能先從遠端伺服器下載到我們電腦磁碟,然後再用ftp工具上傳到伺服器。這樣既浪費時間又浪費精力,那

Linux中rz和sz命令用法,上傳下載命令

在linux中rz 和 sz 命令允許開發板與主機通過串列埠進行傳遞檔案了,下面我們就來簡單的介紹一下rz 和 sz 命令的例子。 rz,sz是Linux/Unix同Windows進行ZModem檔案傳輸的命令列工具。 優點就是不用再開一個sftp工具登入上去上傳下載檔案。

Linux tcpdump命令用法

  TCPDUMP簡介   在傳統的網路分析和測試技術中,嗅探器(sniffer)是最常見,也是最重要的技術之一。sniffer工具首先是為網路管理員和網路程式設計師 進行網路分析而設計的。對於網路管理人員來說,使用嗅探器可以隨時掌握網路的實際情況,在網路效能急劇下降

Ubuntu Linux ln命令用法

用法:ln [選項]… [-T]原始檔 連結名    (第一種格式)   或:ln [選項]… 原始檔        (第二種格式)   或:ln [選項]… 原始檔 … 目錄    (第三種格式)   或:ln [選項]… -t 原始檔夾 連結名…    (第四種格式)

Linux hosts文件

domain none oca 不同 詳解 als 機器 區別 int Linux 下hosts文件詳解 主機名: 無論在局域網還是INTERNET上,每臺主機都有一個IP地址,是為了區分此臺主機和彼臺主機,也就是說IP地址就是主機的門牌號。 公網:IP地

Linux使用Corosync+Pacemaker及安裝

corosync pacemaker 珠聯璧合 Corosync詳解OpenAIS概述OpenAIS是基於SA Forum 標準的集群框架的應用程序接口規範。OpenAIS提供一種集群模式,這個模式包括集群框架,集群成員管理,通信方式,集群監測等,能夠為集群軟件或工具提供滿足 AIS標準的集

1.12-linux三劍客之awk用法

-a proc == 行號 oss url oldboyedu rap oai 1.12linux三劍客之awk用法詳解內容:1. awk執行過程2. awk命令格式3. awk用法4. awk數組第1章 awk執行過程 一直讀取到文件的最後一行第2章 awk ‘找誰{幹啥

Linuxinittab文件

tle sso 根據 UC number mage failure 並且 命令行模式 /etc/inittab文件詳解 Linux系統的啟動過程為:加電自檢-->根據BIOS中的設置從指定的設備啟動-->找到設備MBR中的bootloader引導啟動系統--&

Ansible系列命令用法與使用

Ansible命令詳解 Ansible-doc Ansible-playbook Ansible模塊介紹 Ansible系列命令用法與使用 在上一個文章中已經完成了Ansible的安裝,這片文章主要的用來記錄Ansible一些命令的用法詳解及其使用場景。好了非話不多說,‘上菜吧’。

linux 中特殊符號用法

引號 zabbix 目錄 sele cond 特殊符號 zab set speed 星號(*) 當用於shell變量時, [root@zabbix_nuc ~]# sql=‘select * from mysql.user‘ [root@zabbix_nuc ~]# ech

linux路由設置

RoCE ive sys 路由route 寫入文件 路由表 ado per 數據 路由表信息解釋 ##名詞解釋:Active Routes:活動的路由Network destination :目的網段Netmask:子網掩碼Gateway:網關,又稱下一跳路由器。在發送

Linux的dd命令使用

http://blog.sina.com.cn/s/blog_8b5bb24f01016y3o.html   一、dd命令的解釋 dd:用指定大小的塊拷貝一個檔案,並在拷貝的同時進行指定的轉換。 注意:指定數字的地方若以下列字元結

Linux套接字---epoll模式的IO多路複用伺服器

1 epoll模型簡介 epoll可是當前在Linux下開發大規模併發網路程式的熱門人選,epoll 在Linux2.6核心中正式引入,和select相似,其實都I/O多路複用技術而已,並沒有什麼神祕的。 其實在Linux下設計併發網路程式,向來不缺少方法,比如典型的Apache模型(Proce

Linux程序監控命令ps

    ps是processes的縮寫,是對當前系統程序進行監控。要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,ps命令就是最基本程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態、程序是否結束、程序有沒有殭屍、哪些程序佔用了過多的資源