tr命令

tr命令git

做用

tr命令用於對字符集的替換,刪除,去重複等bash

語法:

tr [–c/d/s/t] [SET1] [SET2]ide

SET1: 字符集1spa

SET2:字符集2it

-c:complement,用SET2替換SET1中沒有包含的字符class

-d:delete,刪除SET1中全部的字符,不轉換 test

-s:squeeze-repeats,壓縮SET1中重複的字符語法

-t:truncate-set1,將SET1用SET2轉換,通常缺省爲-t集合

 

經常使用的例子

  • 去除重複的的字符集  -sdi

[jeck@localhost~]$ echo "aabbccdd1234121123" | tr -s 'abcd1234'
abcd123412123
或者
[jeck@localhost~]$ echo "aabbccdd1234121123" | tr -s '[a-z][0-9]'
abcd123412123
'A-Z'和 'a-z'都是集合,集合是能夠本身制定的,例如:'ABD-}'、'bB.,'、'a-de-h'、'a-c0-9'都屬於集合,集合裏能夠使用'\n'、'\t',能夠能夠使用其餘ASCII字符。

 

  • 把小寫字母轉換成大寫

[jeck@localhost~]$ echo "ni hao fuzj" | tr -t [a-z] [A-Z]
NIHAO FUZJ
  • 刪除某個字符

[jeck@localhost~]$ echo "helow goole " | tr -d go
helwle
注意:-d後面的go。會把前面全部包含g和o的字符刪掉

 

  • 刪除空白行

[jeck@localhost~]$ cat test
bbb
 
 
aaa
cccccccccc
 
dddddddddd
 
aaaaaa
aaa
cccccc
[jeck@localhost~]$ cat test | tr -s "\n"
bbb
aaa
cccccccccc
dddddddddd
aaaaaa
aaa
cccccc
注意:此處用-s刪除了多餘的換行符,若是用-d,則會刪除全部的換行
[jeck@localhost~]$ cat test | tr -d "\n"
bbbaaaccccccccccddddddddddaaaaaaaaacccccc
  • 把空格轉換成換行符

[jeck@localhost~]$ echo "aa bb cc" | tr ' ' '\n'
aa
bb
cc
若是有多個空格的話,須要刪除多餘的空格
[jeck@localhost~]$ echo "aa   bb cc" | tr ' ''\n'
aa
 
 
bb
cc
[jeck@localhost~]$ echo "aa   bb cc" | tr -s '' '\n'
aa
bb
cc

補充:

以上事例都是轉換的字符。tr還能夠直接使用字符類

[:alnum:]:字母和數字

[:alpha:]:字母

[:cntrl:]:控制(非打印)字符

[:digit:]:數字

[:graph:]:圖形字符

[:lower:]:小寫字母

[:print:]:可打印字符

[:punct:]:標點符號

[:space:]:空白字符

[:upper:]:大寫字母

[:xdigit:]:十六進制字符

 

使用方式:

  • 把小寫轉換爲大寫

[jeck@localhost~]$ echo "aa bb cc" | tr '[:lower:]' '[:upper:]'
AABB CC
相關文章
相關標籤/搜索