Linux tr命令使用方法


tr命令主要用於刪除文件中控制字符或進行字符轉換。本文主要介紹tr命令的基本語法和使用實例。

tr基本語法

  tr命令格式:tr [ -d ] [ -c ] [ -s ] [ 字符串1 ] [ 字符串2 ] 文件名。其中字符串1用於查詢,字符串2用於處理各種轉換。

  選項介紹:

-c 用字符串1中字符集的補集替換此字符集,要求字符集為ASCII。
-d 刪除字符串1中所有輸入字符。
-s 刪除所有重復出現字符序列,只保留第一個;即將重復出現字符串壓縮為一個字符串。

  字符串1和字符串2內容只能使用單字符、字符串范圍或列表。比如字符串范圍[a-z]表示小寫字母、[0-9]表示數字。

tr使用實例

  為方便查看命令執行結果,例子中都以數據流重定向方式進行輸入。

1、刪除文件中的空行

$ echo -e "1\n\n2\n\n\n3" | tr -s '\n' #輸出1\n2\n3

  如果參數-s替換為-d,就是刪除所有換行符,輸出結果為123。

2、刪除重復字符

$ echo "Hellooo    Javaaa" | tr -s "[ ao]" #輸出Hello Java

  說明:-s是刪除所有重復出現字符序列,只保留第一個。再用下面一個例子加深一下這句話的理解。

$ echo "Heoolloooo oo Pythonnnnn" | tr -s 'on' #刪除字符on,輸出Heollo o Python

3、刪除空格

$ echo "   Hello World  " | tr -d '[ \t]' #刪除空格,包括tab鍵。輸出HelloWorld

 說明:這里tr命令會刪除包括中間的空格,如果只需要刪除行首或者尾部的空格,可以使用sed命令。

4、大小寫替換,shell編程中可用於忽略大小寫的字符串判斷場景。

$ echo "Hello World" | tr '[a-z]' '[A-Z]' #小寫轉大寫,輸出HELLO WORLD
$ echo "Hello World" | tr '[A-Z]' '[a-z]' #大寫轉小寫,輸出hello world
$ echo "Hello World" | tr '[A-Za-z]' '[a-zA-Z]' #大小寫互換,輸出hELLO wORLD

5、刪除數字或字母,在shell編程中可用於判斷輸入是否為純數字或字母。

$ echo "hello 123World456" | tr -d '[0-9]' #刪除數字,輸出hello World
$ echo "hello123World456" | tr -d '[a-zA-Z]' #刪除字母,輸出123456

 6、將多行內容合並為一行。

$ echo -e "1\n2\n3\n4" | tr -d '\n' #輸出1234

7、將多個連續空格合並為一個空格,並將空格替換為破折號‘-’。

$ echo "2018       06  01" |tr -s ' ' '-' #輸出2018-06-01

8、刪除非數字字符,主要用於了解下-c參數的作用。

$ echo "2018abcdefdf06zzz01" |tr -d -c '[0-9]' #輸出20180601


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM