Linux下cut命令用法詳解
Linux下cut命令用法詳解
原創: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分別表示位元組、字元、欄位(即byte、character、field);
llist表示-b、-c、-f操作範圍,-n常常表示具體數字;
lfile表示的自然是要操作的文字檔案的名稱;
ldelim(英文全寫:delimiter)表示分隔符,預設情況下為TAB;
l-s表示不包括那些不含分隔符的行(這樣有利於去掉註釋和標題)
上面三種方式中,表示從指定的範圍中提取位元組(-b)、或字元(-c
範圍的表示方法:
N |
只有第N項 |
N- |
從第N項一直到行尾 |
N-M |
從第N項到第M項(包括M) |
-M |
從一行的開始到第M項(包括M) |
- |
從一行的開始到結束的所有項 |
下面是例項,先以較簡單的“命令用法”中提及的第二條開始講起:
interrupts檔案中的字元排列非常齊整,正適合我們切豆腐。
但這裡我們只對兩個數字列感興趣,用法如下:
裡面還有一些不需要的內容,精減一下:
關於正則表示式的使用,請自行查閱相關資料。
合到一起:
哇,果然夠帥!!
不相鄰列的截選又應該如何做呢?
這種方式需要事先確定佔多少個字元位置,不僅麻煩,而且容易出錯。
下面的問題該怎麼去做?
這就是第二講:使用cut –f提取文字中的欄位。
cut –c主要是用來在固定字元位置或個數的文字檔案中提取,對於上面的例子就顯得無能為力了。仔細觀察,發現passwd檔案有個規律,就是以冒號來區分不同的段的文字,於是。。。
怎麼樣,好玩吧~!
繼續,建立一個文字檔案,名為a.txt,名字有點土,湊合著用吧。
A1、B1、C1所代表的行字元之間均以TAB分隔,D1卻是以空格來分開的。
看到-s的作用了嗎?(因為第一行不含有任何TAB字元,所以直接被剔除了),而最後一行(即D1行),是以空格區分間距,所以也不合要求。
多了個引數,這個我沒講,只要你的智商比範偉高一點點,就肯定能猜出來啦。^_^
好了,下面是最後一個用法的講解了:
因為虛擬終端下無法顯示漢字,所以我只好回到圖形下,截圖就成這個白不垃圾的樣子啦,忍忍吧,就快講完了。
在這個檔案中,每個漢字都是用半形空格分隔的。
用cut –c已經成功了,下面試試cut –b怎麼樣?
沒有反應,why?
原因在於漢字本身是雙位元組的,cut –c把漢字“我”當成一個字元來處理,而cut –b是以位元組來處理,把“我”拆成了兩個位元組,結果是字元被“切成兩半”,因此無法正常顯示。
原因找到了,要怎麼辦才好呢?
耶!!!搞定。
OK,all is done。就到這裡吧,休息,休息。。。
相關推薦
Linux下cut命令用法詳解
Linux下cut命令用法詳解 原創:frozen_sucker(冰棍) 有時我們經常會遇到這樣一些問題:有一頁電話號碼薄,上面按順序規則地寫著人名、家庭
Linux下diff命令用法詳解
大家好,我是良許。 我們在平時工作的時候,經常要知道兩個檔案之間,以及同個檔案不同版本之間有何異同點。在 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 ‘找誰{幹啥
Linux下inittab文件詳解
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命令就是最基本程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態、程序是否結束、程序有沒有殭屍、哪些程序佔用了過多的資源