Liunx 中sed、grep玩荠、cut漆腌、sort、tee姨蟋、diff 、paste命令

Linux下一切皆文件立帖,對(duì)Linux的操作就是對(duì)文件的處理眼溶。

把最近學(xué)習(xí)的liunx命令做一個(gè)總結(jié),方便復(fù)習(xí)使用晓勇。

目錄
一堂飞、grep 按關(guān)鍵字過(guò)濾文件行
二、cut 列截取工具
三绑咱、sed 替換文件中的內(nèi)容
四绰筛、sort 排序,sort -u 2.txt描融、去除文件的重復(fù)行
五铝噩、tee
六、diff 逐行比較文件的不同
七窿克、paste 合并文件行
八骏庸、tr 替換刪除文件中的字符

一、grep

grep是過(guò)濾工具年叮,用于根據(jù)關(guān)鍵字進(jìn)行行過(guò)濾

1具被、語(yǔ)法:

grep [選項(xiàng)] '關(guān)鍵字' 文件名

2、常見(jiàn)選項(xiàng):

-i: 不區(qū)分大小寫(xiě)
-v: 查找不包含指定內(nèi)容的行,反向選擇
-w: 按單詞搜索
-o: 打印匹配關(guān)鍵字
-c: 統(tǒng)計(jì)匹配到的行數(shù)
-n: 顯示行號(hào)
-r: 逐層遍歷目錄查找
-A: 顯示匹配行及后面多少行 
-B: 顯示匹配行及前面多少行
-C: 顯示匹配行前后多少行
-l:只列出匹配的文件名
-L:列出不匹配的文件名
-e: 使用正則匹配
-E:使用擴(kuò)展正則匹配
^key:以關(guān)鍵字開(kāi)頭
key$:以關(guān)鍵字結(jié)尾
^$:匹配空行

3只损、常見(jiàn)的案例使用

# grep -i root passwd                       忽略大小寫(xiě)匹配包含root的行
# grep -w ftp passwd                        精確匹配ftp單詞
# grep -w hello passwd                      精確匹配hello單詞;自己添加包含hello的行到文件
# grep -wo ftp passwd                       打印匹配到的關(guān)鍵字ftp
# grep -n root passwd                       打印匹配到root關(guān)鍵字的行號(hào)
# grep -ni root passwd                      忽略大小寫(xiě)匹配統(tǒng)計(jì)包含關(guān)鍵字root的行
# grep -nic root passwd                     忽略大小寫(xiě)匹配統(tǒng)計(jì)包含關(guān)鍵字root的行數(shù)
# grep -i ^root passwd                      忽略大小寫(xiě)匹配以root開(kāi)頭的行
# grep bash$ passwd                             匹配以bash結(jié)尾的行
# grep -n ^$ passwd                             匹配空行并打印行號(hào)
# grep ^# /etc/vsftpd/vsftpd.conf       匹配以#號(hào)開(kāi)頭的行
# grep -v ^# /etc/vsftpd/vsftpd.conf    匹配不以#號(hào)開(kāi)頭的行
# grep -A 5 mail passwd                     匹配包含mail關(guān)鍵字及其后5行
# grep -B 5 mail passwd                     匹配包含mail關(guān)鍵字及其前5行
# grep -C 5 mail passwd                     匹配包含mail關(guān)鍵字及其前后5行

二一姿、 cut

cut是截取工具,用于列的截取

1、語(yǔ)法

# cut 選項(xiàng)  文件名

2叮叹、常見(jiàn)選項(xiàng)

-c: 以字符為單位進(jìn)行分割,截取
-d: 自定義分隔符艾栋,默認(rèn)為制表符\t
-f: 與-d一起使用,指定截取哪個(gè)區(qū)域

3衬横、常見(jiàn)的案例使用

# cut -d: -f1 1.txt             以:冒號(hào)分割裹粤,截取第1列內(nèi)容
# cut -d: -f1,6,7 1.txt     以:冒號(hào)分割,截取第1,6,7列內(nèi)容
# cut -c4 1.txt                 截取文件中每行第4個(gè)字符
# cut -c1-4 1.txt           截取文件中每行的1-4個(gè)字符
# cut -c4-10 1.txt          截取文件中每行的4-10個(gè)字符
# cut -c5- 1.txt                從第5個(gè)字符開(kāi)始截取后面所有字符
cut -c1-4 passed.txt    #截取文件中每行的1-4個(gè)字符

三蜂林、sed

關(guān)于sed命令的使用遥诉,大家可以搜索網(wǎng)上相關(guān)文章,這里只列舉了部分我工作中常用的用法噪叙。

1矮锈、常見(jiàn)的案例使用

sed -i '1d' filename     #刪除文件第一行,-i會(huì)直接修改原文件內(nèi)容
sed -i 'nd' filename      #刪除文件第n行
sed -i '$d'       #刪除文件最后一行
sed -i '1,5d' filename      #刪除文件第1到5五行
sed -i '10,$d' filename     # 刪除文件第10到最后一行
sed  -i 's/原字符串/替換字符串/' filename   #替換文件中的內(nèi)容
sed -i 's/sbin/sbin1204/g' passwd        #將文件所有sbin替換成sbin1204
sed -i '1,5s/sbin/sbin1204/g' passwd    ##將文件前五行中的sbin替換成sbin1204

四睁蕾、sort

sort工具用于排序苞笨,它將文件的每一行作為一個(gè)單位,從首字符向后子眶,依次按ASCII碼值進(jìn)行比較瀑凝,最后將他們按升序輸出。

1臭杰、語(yǔ)法和選項(xiàng)

-u :去除重復(fù)行
-r :降序排列粤咪,默認(rèn)是升序
-o : 將排序結(jié)果輸出到文件中,類(lèi)似重定向符號(hào)>
-n :以數(shù)字排序,默認(rèn)是按字符排序
-t :分隔符
-k :第N列
-b :忽略前導(dǎo)空格渴杆。
-R :隨機(jī)排序寥枝,每次運(yùn)行的結(jié)果均不同

2、常見(jiàn)的案例使用

# sort -n -t: -k3 1.txt             按照用戶的uid進(jìn)行升序排列
# sort -nr -t: -k3 1.txt            按照用戶的uid進(jìn)行降序排列
# sort -n 2.txt                         按照數(shù)字排序
# sort -nu 2.txt                        按照數(shù)字排序并且去重
# sort -nr 2.txt 
# sort -nru 2.txt 
# sort -nru 2.txt 
# sort -n 2.txt -o 3.txt            按照數(shù)字排序并將結(jié)果重定向到文件
# sort -R 2.txt 
# sort -u 2.txt 

五磁奖、tee

tee工具是從標(biāo)準(zhǔn)輸入讀取并寫(xiě)入到標(biāo)準(zhǔn)輸出和文件囊拜,即:雙向覆蓋重定向(屏幕輸出|文本輸入)

1、常見(jiàn)的案例使用

echo hello world|tee file1    # 屏幕打印hello world,并將hello world寫(xiě)入到文件file1
# cat file1 
echo 999|tee -a file1    # 屏幕打印999,并將999追加到文件file1
grep -v '^#' passed.txt | grep -v '^$' |tree test1202.txt

六.diff

diff工具用于逐行比較文件的不同
注意:diff描述兩個(gè)文件不同的方式是告訴我們?cè)鯓痈淖兊谝粋€(gè)文件之后與第二個(gè)文件匹配
1比搭、語(yǔ)法

diff [選項(xiàng)] 文件1 文件2

2冠跷、常用選項(xiàng)

-b  不檢查空格   
-B  不檢查空白行  
-i  不檢查大小寫(xiě)  
-w  忽略所有的空格 
--normal    正常格式顯示(默認(rèn))  
-c  上下文格式顯示 
-u  合并格式顯示

七、paste

paste工具用于合并文件行

1身诺、常用選項(xiàng)

-d:自定義間隔符蔽莱,默認(rèn)是tab
-s:串行處理,非并行

2戚长、常見(jiàn)的案例使用

paste file1 file2  #file1 file2按行合并盗冷,分隔符是tab
paste -d: file1 file2  #file1 file2按行合并,分隔符是冒號(hào)
paste -s file1 file2
paste -s -d: file1 file2

八同廉、tr

tr用于字符轉(zhuǎn)換仪糖,替換和刪除柑司;主要用于刪除文件中控制字符或進(jìn)行字符轉(zhuǎn)換。tr工具是一對(duì)一替換,是將匹配中的字符替換為另外一個(gè)字符。

1肋联、常用選項(xiàng)

-d 刪除字符串1中所有輸入字符。
-s 刪除所有重復(fù)出現(xiàn)字符序列玻粪,只保留第一個(gè);即將重復(fù)出現(xiàn)字符串壓縮為一個(gè)字符串
用法1:命令的執(zhí)行結(jié)果交給tr處理诬垂,其中string1用于查詢(xún)劲室,string2用于轉(zhuǎn)換處理
commands|tr  'string1'  'string2'  #將string1替換為string2,兩個(gè)程序之間用管道連接起來(lái)

=======================================
用法2:tr處理的內(nèi)容來(lái)自文件结窘,記住要使用"<"標(biāo)準(zhǔn)輸入
 tr  'string1'  'string2' < filename  #將文件的內(nèi)容作為標(biāo)準(zhǔn)輸入交給tr處理

=======================================
用法3:匹配string1進(jìn)行相應(yīng)操作很洋,如刪除操作
 tr [options] 'string1' < filename

2、常見(jiàn)的案例使用

tr 'a-z' 'A-Z' <passed.txt 
tr ':/' '#' <passed.txt |head
tr '0-9' '@' <passed.txt |head
tr -d 'a-z' < passed.txt   #刪除文件中的小寫(xiě)字母隧枫,不會(huì)修改原文件呢內(nèi)容
tr -d ':/ 0-9' < passed.txt  #刪除文件中的數(shù)字喉磁,空格及:和/、

自己現(xiàn)在寫(xiě)文章越來(lái)越不用心了官脓,總覺(jué)得太忙协怒,要把所有時(shí)間用在學(xué)習(xí)上,多總結(jié)多寫(xiě)文章卑笨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末孕暇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子湾趾,更是在濱河造成了極大的恐慌芭商,老刑警劉巖派草,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搀缠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡近迁,警方通過(guò)查閱死者的電腦和手機(jī)艺普,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鉴竭,“玉大人歧譬,你說(shuō)我怎么就攤上這事〔妫” “怎么了瑰步?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)璧眠。 經(jīng)常有香客問(wèn)我缩焦,道長(zhǎng)读虏,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任袁滥,我火速辦了婚禮盖桥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘题翻。我一直安慰自己揩徊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布嵌赠。 她就那樣靜靜地躺著塑荒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪猾普。 梳的紋絲不亂的頭發(fā)上袜炕,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音初家,去河邊找鬼偎窘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛溜在,可吹牛的內(nèi)容都是我干的陌知。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼掖肋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼仆葡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起志笼,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤沿盅,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后纫溃,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體腰涧,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年紊浩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窖铡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坊谁,死狀恐怖费彼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情口芍,我是刑警寧澤箍铲,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站鬓椭,受9級(jí)特大地震影響颠猴,放射性物質(zhì)發(fā)生泄漏聋庵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一芙粱、第九天 我趴在偏房一處隱蔽的房頂上張望祭玉。 院中可真熱鬧,春花似錦春畔、人聲如沸脱货。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)振峻。三九已至,卻和暖如春择份,著一層夾襖步出監(jiān)牢的瞬間扣孟,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工荣赶, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凤价,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓拔创,卻偏偏與公主長(zhǎng)得像利诺,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子剩燥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容