【linux命令學(xué)習(xí)】— cut 和 tr 命令學(xué)習(xí)

https://blog.csdn.net/u013332124/article/details/93654007

一寺酪、cut命令學(xué)習(xí)

cut命令主要用來切割字符串,可以對(duì)輸入的數(shù)據(jù)進(jìn)行切割然后輸出盼产,它可以支持三種形勢的切割:

  • 按字節(jié)(bytes)進(jìn)行切割
  • 按字符進(jìn)行切割
  • 按指定的分割符進(jìn)行切割

在linux中,一些特殊字符(比如中文)會(huì)占多個(gè)字節(jié)鲤屡,所以,通過字節(jié)分割和通過字符分割是不同的,這一點(diǎn)要搞清楚。

按字節(jié)進(jìn)行切割

通過-b參數(shù)憨栽,我們可以按字節(jié)來切割字符串,使用命令格式如下:

cut [-n] -b List inputfile

# 獲取第1個(gè)和第3個(gè)字節(jié).
# 輸出: hl
echo "hello world" | cut -b 1,3
# 獲取第1個(gè)到第3個(gè)之間的字節(jié)
# 輸出: hel
echo "hello world" | cut -b 1-3
# 如果有中文字符翼虫,就無法很好的通過-b來獲取
# 輸出: ? 
echo "h和o" | cut -b 2
# 輸出(一個(gè)中文漢字占3個(gè)字節(jié)): 和
echo "h和o" | cut -b 2-4
# 加上 -n 屑柔,遇到這種多個(gè)字節(jié)組成的字符就只會(huì)在最后一個(gè)字節(jié)處才會(huì)輸出
# 輸出(輸出空字符): ""
echo "h和o" | cut -n -b 2
# 輸出(第四個(gè)字節(jié)剛好是最后一個(gè)字節(jié)): 和
echo "h和o" | cut -n -b 4

按字符進(jìn)行切割

通過-c參數(shù),我們可以按字符來切割字符串珍剑,使用命令格式如下:

cut -c List inputfile

# 獲取第1個(gè)和第3個(gè)字符.
# 輸出: hl
echo "hello world" | cut -c 1,3
# 獲取第1個(gè)到第3個(gè)之間的字符
# 輸出: hel
echo "hello world" | cut -c 1-3
# 帶中文也可以輸出
# 輸出: 和
echo "h和o" | cut -c 2

按指定字符進(jìn)行切割

通過-d-f配合掸宛,我們可以按指定字符來分割字符串,使用命令格式如下:

cut -d 'DELIM' -f LIST

# 按 "," 號(hào)分割招拙,并輸出第一列和第三列
# 輸出: hello,ok
echo "hello,world,ok" | cut -d , -f 1,3
# 按 "," 號(hào)分割唧瘾,并輸出第1到第三列之間的數(shù)據(jù)
# 輸出: world,ok
echo "hello,world,ok" | cut -d , -f 2-3

二、tr 命令學(xué)習(xí)

tr 命令主要用來替換字符别凤。它的原理是對(duì)輸入的數(shù)據(jù)按字符進(jìn)行替換或者刪除(也只能按字符來饰序,不能根據(jù)單詞來做替換)。

tr有幾個(gè)常用的參數(shù):

  • -c:通過指定字符的補(bǔ)集來替換字符串(也就是反向匹配)
  • -d:刪除字符
  • -s:對(duì)連續(xù)重復(fù)的字符進(jìn)行去重
  • -t:忽略SET1中多出的字符

替換字符使用demo

tr會(huì)根據(jù)傳入的兩個(gè)SET的字符順序來替換字符串规哪,比如SET1的第一個(gè)字符是a,SET2的第一個(gè)字符是x求豫。那么tr在運(yùn)行時(shí)會(huì)將所有的a字符替換成x字符

# 根據(jù)字符的順序進(jìn)行匹配替換:h->x e->y l->c
# 輸出: xyzzo worzd
echo "hello world" | tr "hel" "xyz"
# 如果SET2的length沒有SET1,就會(huì)自動(dòng)用SET2的最后一位補(bǔ)上
# 輸出: xxxxo worxd
echo "hello world" | tr "hel" "x"

-c诉稍,-d 參數(shù)使用demo

# 去除數(shù)字外的所有字符蝠嘉。-d表示刪除匹配的字符,-c表示反向匹配
# 輸出: 123
echo "hello 123 world" | tr -c -d "0-9"
# 沒加-c的話輸出: hello  world
echo "hello 123 world" | tr -d "0-9"

-s 參數(shù)使用demo

# 去除連續(xù)重復(fù)的字符
# 輸出: heo o aa
echo "hello ll aa" | tr -s "l" "o"

-t 參數(shù)使用demo

# 去除SET1多余的字符
# 沒加-t前均唉,輸出: xxxxo worxd
echo "hello world" | tr "hel" "x"
# 加了-t是晨,輸出: xello world
echo "hello world" | tr -t "hel" "x"

tr中的一些轉(zhuǎn)義符

所有的轉(zhuǎn)義符如下:

\NNN 八進(jìn)制值的字符 NNN (1 to 3 為八進(jìn)制值的字符)
\\ 反斜杠
\a Ctrl-G 鈴聲
\b Ctrl-H 退格符
\f Ctrl-L 走行換頁
\n Ctrl-J 新行
\r Ctrl-M 回車
\t Ctrl-I tab鍵
\v Ctrl-X 水平制表符
[:alnum:] 所有的字母和數(shù)字
[:alpha:] 所有字母
[:blank:] 水平制表符,空白等
[:cntrl:] 所有控制字符
[:digit:] 所有的數(shù)字
[:graph:] 所有可打印字符舔箭,不包括空格
[:lower:] 所有的小寫字符
[:print:] 所有可打印字符罩缴,包括空格
[:punct:] 所有的標(biāo)點(diǎn)字符
[:space:] 所有的橫向或縱向的空白
[:upper:] 所有大寫字母

demo:

# 所有小寫字符轉(zhuǎn)大寫字符(兩種方式)
# 輸出: HELLO
echo "heLlo" | tr "[:lower:]" "[:upper:]"
echo "heLlo" | tr [a-z] [A-Z]

三、總結(jié)

其實(shí)cut和tr命令和awk與sed很像层扶。cut基本就是awk的簡單版本箫章,而tr就是sed的簡單版本。雖然awk和sed的功能很強(qiáng)大镜会,但是一些比較簡單的場景檬寂,其實(shí)使用cut和tr就足夠了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末戳表,一起剝皮案震驚了整個(gè)濱河市桶至,隨后出現(xiàn)的幾起案子昼伴,更是在濱河造成了極大的恐慌,老刑警劉巖镣屹,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件圃郊,死亡現(xiàn)場離奇詭異,居然都是意外死亡女蜈,警方通過查閱死者的電腦和手機(jī)持舆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伪窖,“玉大人逸寓,你說我怎么就攤上這事「采剑” “怎么了竹伸?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長簇宽。 經(jīng)常有香客問我佩伤,道長,這世上最難降的妖魔是什么晦毙? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮耙蔑,結(jié)果婚禮上见妒,老公的妹妹穿的比我還像新娘。我一直安慰自己甸陌,他們只是感情好须揣,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钱豁,像睡著了一般耻卡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上牲尺,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天卵酪,我揣著相機(jī)與錄音,去河邊找鬼谤碳。 笑死溃卡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蜒简。 我是一名探鬼主播瘸羡,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼搓茬!你這毒婦竟也來了犹赖?” 一聲冷哼從身側(cè)響起队他,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎峻村,沒想到半個(gè)月后麸折,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雀哨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年磕谅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雾棺。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡膊夹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捌浩,到底是詐尸還是另有隱情放刨,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布尸饺,位于F島的核電站进统,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏浪听。R本人自食惡果不足惜螟碎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望迹栓。 院中可真熱鬧掉分,春花似錦、人聲如沸克伊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愿吹。三九已至不从,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間犁跪,已是汗流浹背椿息。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坷衍,地道東北人撵颊。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像惫叛,于是被迫代替她去往敵國和親倡勇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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

  • 基礎(chǔ)命令 主要的命令和快捷鍵 Linux系統(tǒng)命令由三部分組成:cmd + [options]+[operation...
    485b1aca799e閱讀 1,086評(píng)論 0 0
  • df -h | tr -s ' ' | cut -f5 -d' ' 命令簡介: 通過使用tr,您可以非常容易地實(shí)現(xiàn)...
    西華子閱讀 470評(píng)論 0 0
  • 本文將介紹Linux下使用Shell處理文本時(shí)最常用的工具: find妻熊、grep夸浅、xargs、sort扔役、uniq帆喇、...
    程序員BUG閱讀 818評(píng)論 0 15
  • 本文筆記源自這里——[實(shí)驗(yàn)樓]歡迎大家在下面交流其中有問題的地方喜歡請(qǐng)點(diǎn)收藏,每日更新(全部已親自實(shí)踐). 一. ...
    東皇Amrzs閱讀 3,963評(píng)論 7 54
  • 心即性,性即理 問:“看書不能明如何亿胸?” 先生曰:“此只是在文義上穿求坯钦,故不明。如此又不如為舊時(shí)學(xué)問侈玄,他到看得多婉刀,...
    沐云齋閱讀 519評(píng)論 0 3