【Linux】一步一步学Linux——tr命令(55)
生活随笔
收集整理的這篇文章主要介紹了
【Linux】一步一步学Linux——tr命令(55)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
00. 目錄
文章目錄
- 00. 目錄
- 01. 命令概述
- 02. 命令格式
- 03. 常用選項
- 04. 參考示例
- 05. 附錄
01. 命令概述
tr命令可以對來自標準輸入的字符進行替換、壓縮和刪除。它可以將一組字符變成另一組字符,經常用來編寫優美的單行命令,作用很強大。
tr的英文全稱是“ transform ”,即轉換的意思。tr他只能從標準輸入中讀取數據,因此,tr要么將輸入文件重定向到標準輸入,要么從管道讀入數據。
注意:tr類似于sed命令,但是比sed簡單,所以tr能實現的功能,sed都能實現。
02. 命令格式
用法:tr [選項]... SET1 [SET2]03. 常用選項
從標準輸入中替換、縮減和/或刪除字符,并將結果寫到標準輸出。-c, -C, --complement 首先補足SET1-d, --delete 刪除匹配SET1 的內容,并不作替換-s, --squeeze-repeats 如果匹配于SET1 的字符在輸入序列中存在連續的重復,在替換時會被統一縮為一個字符的長度-t, --truncate-set1 先將SET1 的長度截為和SET2 相等--help 顯示此幫助信息并退出--version 顯示版本信息并退出SET 是一組字符串,一般都可按照字面含義理解。解析序列如下:\NNN 八進制值為NNN 的字符(1 至3 個數位)\\ 反斜杠\a 終端鳴響\b 退格\f 換頁\n 換行\r 回車\t 水平制表符\v 垂直制表符字符1-字符2 從字符1 到字符2 的升序遞增過程中經歷的所有字符[字符*] 在SET2 中適用,指定字符會被連續復制直到吻合設置1 的長度[字符*次數] 對字符執行指定次數的復制,若次數以 0 開頭則被視為八進制數[:alnum:] 所有的字母和數字[:alpha:] 所有的字母[:blank:] 所有呈水平排列的空白字符[:cntrl:] 所有的控制字符[:digit:] 所有的數字[:graph:] 所有的可打印字符,不包括空格[:lower:] 所有的小寫字母[:print:] 所有的可打印字符,包括空格[:punct:] 所有的標點字符[:space:] 所有呈水平或垂直排列的空白字符[:upper:] 所有的大寫字母[:xdigit:] 所有的十六進制數[=字符=] 所有和指定字符相等的字符僅在SET1 和SET2 都給出,同時沒有-d 選項的時候才會進行替換。 僅在替換時才可能用到-t 選項。如果需要SET2 將被通過在末尾添加原來的末字符的方式 補充到同SET1 等長。SET2 中多余的字符將被省略。只有[:lower:] 和[:upper:] 以升序展開字符;在用于替換時的SET2 中以成對表示大小寫轉換。-s 作用于SET1,既不 替換也不刪除,否則在替換或展開后使用SET2 縮減。04. 參考示例
4.1 將輸入字符由大寫轉換為小寫
[deng@localhost ~]$ echo "HELLO ITCAST" | tr 'A-Z' 'a-z' hello itcast [deng@localhost ~]$‘A-Z’ 和 ‘a-z’都是集合,集合是可以自己制定的,例如:‘ABD-}’、‘bB.,’、‘a-de-h’、‘a-c0-9’都屬于集合,集合里可以使用’\n’、’\t’,可以可以使用其他ASCII字符。
4.2 刪除出現的數字
[deng@localhost ~]$ echo "hello 1234 itcast 7890" | tr -d '0-9' hello itcast [deng@localhost ~]$4.3 從輸入文本中將不在補集中的所有字符刪除
[deng@localhost test]$ echo aabbcc..#dd2 */dk4 | tr -d -c '0-9 \n' 2 4 [deng@localhost test]$補集中包含了數字0~9、空格和換行符\n,所以沒有被刪除,其他字符全部被刪除了。
4.4 將連續重復的字符以單獨一個字符表示
[deng@localhost test]$ echo "helloooooooooo is heimamaaaaaaaaaa" | tr -s 'oa' hello is heimama [deng@localhost test]$4.5 使用替換操作執行+操作
[deng@localhost test]$ echo 1 2 3 4 5 6 7 8 9 | xargs -n1 | echo $[ $(tr '\n' '+') 0 ] 45 [deng@localhost test]$4.6 刪除由于Windows文件造成的’^M’字符
[deng@localhost test]$ cat txt | tr -s '\r' '\n' > file [deng@localhost test]$或者
[deng@localhost test]$ cat txt | tr -d '\r' > file4.7 將小寫字母轉換為大寫字母
[deng@localhost test]$ echo "hello itcast" | tr '[:lower:]' '[:upper:]' HELLO ITCAST [deng@localhost test]$4.8 將換行符替換成制表符
[deng@localhost test]$ cat txt | tr '\n' '\t'1111 1111 2222 2222 5555 [deng@localhost test]$ [deng@localhost test]$05. 附錄
參考:【Linux】一步一步學Linux系列教程匯總
總結
以上是生活随笔為你收集整理的【Linux】一步一步学Linux——tr命令(55)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux】一步一步学Linux——s
- 下一篇: 【Linux】一步一步学Linux——r