tr命令用於轉換或刪除字符,是個很不錯的命令,下面是它的參數:
常用選項有:
-c:取字符集的補集
-d:刪除匹配的指定字符集中的字符
-s:把連續重複的字符以單獨一個字符表示
-t:先刪除第一字符集較第二字符集多出的字符
\\:反斜槓
\a:響鈴
\b:退格
\n:換行
\r:回車
[:xxx:]表示預定義字符
[:alnum:] :所有的字母和數字
[:alpha:] :所有的字母
[:blank:] :所有呈水平排列的空白字符
[:cntrl:] :所有的控制字符
[:digit:]: 所有的數字
[:graph:] :所有的可打印字符,不包括空格
[:lower:] :所有的小寫字母
[:print:] :所有的可打印字符,包括空格
[:punct:] :所有的標點字符
[:space:] :所有呈水平或垂直排列的空白字符
[:upper:] :所有的大寫字母
舉例:
1 將文件/etc/issue裏面的小寫字母改爲大寫字母放入文件/tmp/issue.out中
cat /etc/issue|tr 'a-z' 'A-Z' > /tmp/issue.out
2計算1到10相加的總和
(1)seq 1 10|xargs|tr " " "+"|bc
(2) [root@localhost ~]# echo "1 2 3 4 5 6 7 8 9 10" > file1
[root@localhost ~]# cat file1 | tr ' ' '+'|bc
3 處理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的數字和空格
echo "xt.,l 1 jr#rootmn2 c*/fe3 uz4" | tr '[[:punct:]]' ' ' | tr '[[:alpha:]]' ' '
4 將文件中每個單詞(字母)顯示在獨立的一行,並無空行
[root@localhost ~]# cat test
No matter
how far you may
fly, never forget where you come from.
[root@localhost ~]# cat test | tr '[[:punct:]]' '\n'|tr '[[:space:]]' '\n'|tr -s '\n'
No
matter
how
far
you
may
fly
never
forget
where
you
come
from
5其他
[[:alpha:]!] 表示 匹配任一英文字母或感嘆號。
匹配以字母數字或者下劃線開頭的多個字符,其後有一個@之後有多個字母數字或者下劃線,其中有一個.號
grep '^[[:alpha:][:digit:]_]*@[[:alpha:][:digit:]]*\..*' email.txt