以前看過一篇文章《當咱們 chmod 777 的時候,到底幹了些什麼?》,最近又想起來,讓人不得不感嘆前輩大神們的厲害,創造出如此多各樣用途、各類使用方式的命令,以致於連文件權限 chmod 這樣一種命令,都有這麼多處理方式:正則表達式
→ bash bash-3.2$ chmod usage: chmod [-fhv] [-R [-H | -L | -P]] [-a | +a | =a [i][# [ n]]] mode|entry file ... chmod [-fhv] [-R [-H | -L | -P]] [-E | -C | -N | -i | -I] file ...
回到主題,在使用 Linux 的過程,咱們最經常使用的操做命令可能就是對文本文件的處理了:find / grep / sort / cut / awk / sed / uniq / tee / tr / diff / cmp / split / xargs 等,天天都會用到諸如這些操做。因此,本期週刊將介紹命令行世界中最經常使用的文本處理命令——awk, sed, grep 三巨頭,讓它們帶你初步領略命令行的強大。shell
0. 進入命令行世界express
玩轉 Linux - shell 編程基礎segmentfault
Linux 有哪些常見的使用命令,shell 編程有哪些經常使用的命令,不管你是菜鳥仍是老鳥,@AlphaGooo 的兩篇概括整理,老是能夠用獲得。而在第三篇中,引入今天的主題,做者甚至稱 sed 和 awk 爲「Linux 系統的兩個神級工具」。編程語言
1. awk編輯器
AWK 是一門解釋型的編程語言,在處理文本文件時,它又是很是強大的文本分析工具。之因此叫 AWK 是由於其取了三位創始人 Alfred Aho, Peter Weinberger 和 Brian Kernighan 的姓氏首字母。工具
簡單的,能夠直接理解爲「awk 是一個數據處理工具」,傾向於將一行文本分紅數個「字段」來處理,適合小型數據的處理。學習
一篇基礎介紹,一篇譯自著名的《AWK Tutorial》的全面學習指南,再幾篇使用案例,再好不過。
2. sed
SED 的英文全稱是 Stream Editor,本質上是一個編輯器,可是它是非交互式的,這點與 VIM 不一樣;同時它又是面向字符流的,輸入的字符流通過 SED 的處理後輸出。這兩個特性使得 SED 成爲命令行下面很是有用的一個處理工具。
SED 也是一個管道命令,能夠分析 standard input 的,主要是用來分析關鍵字的使用、統計等,此外還能夠將數據進行替換、刪除、心中、選取特定行等功能。區別於 AWK,你能夠從它的這幾種典型用途中看出:文本替換、選擇性的輸出文本文件、從文本文件的某處開始編輯、無交互式的對文本文件進行編輯。
3. grep
globally search a regular expression and print(以正規表示法進行全域查找以及打印),
g/re/p
。在給出文件列表或標準輸入後,它會對匹配一個或多個正則表達式的文本進行搜索,並只輸出匹配(或者不匹配)的行或文本。
關於 grep,一個有 40 年曆史的 Unix 命令 // GitCafe
「在我公開 grep 這個命令以前的很長一段時間裏它都是個人私有命令。」 Unix 的創造者 Ken Thompson,也是 grep 的做者。該文講述了一段過往歷史,在 grep 的發明背後,fgrep 和 egrep 的等修改版一直在被人使用,卻甚少有大衆知道。
Linux 基礎命令介紹五:文本過濾 grep // vvpale
做者的這個 Linux 基礎命令介紹系列,很是值得閱讀,基本每一塊都作到了很是詳細地步驟化解說,簡直 excited!
4. 彩蛋:你不知道的有趣命令
接下來,咱們會陸陸續續推出好幾期關於 Linux 命令行的主題週刊,也將在每期都增長一部分好玩的知識瞭解,本期是「有(wu)趣(yong)的命令」:screenfetch、fortune、toilet、ddate、sl……炫酷無敵,但是…哈哈哈哈哈哈哈。
(本期完)
# SegmentFault 技術週刊 #
「技術週刊」是社區特別推出的技術內容系列,一週一主題。週刊篩選的每篇內容,是做者的獨到看法,踩坑總結和經驗分享。