學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > Linux中的tr命令的詳細解釋

Linux中的tr命令的詳細解釋

時間: 佳洲1085 分享

Linux中的tr命令的詳細解釋

  Linux下的tr命令是一個專門用來處理字符的命令,下面由學習啦小編為大家整理了linux下的tr命令的詳細解釋,希望對大家有幫助!

  Linux中的tr命令的詳細解釋

  Linux中的tr命令用于轉(zhuǎn)換或刪除文件中的字符。

  tr 指令從標準輸入設(shè)備讀取數(shù)據(jù),經(jīng)過字符串轉(zhuǎn)譯后,將結(jié)果輸出到標準輸出設(shè)備。

  語法

  tr [-cdst][--help][--version][第一字符集][第二字符集]

  tr [OPTION]…SET1[SET2]

  參數(shù)說明:

  -c, --complement:反選設(shè)定字符。也就是符合 SET1 的部份不做處理,不符合的剩余部份才進行轉(zhuǎn)換

  -d, --delete:刪除指令字符

  -s, --squeeze-repeats:縮減連續(xù)重復(fù)的字符成指定的單個字符

  -t, --truncate-set1:削減 SET1 指定范圍,使之與 SET2 設(shè)定長度相等

  --help:顯示程序用法信息

  --version:顯示程序本身的版本信息

  字符集合的范圍:

  \NNN 八進制值的字符 NNN (1 to 3 為八進制值的字符)

  \ 反斜杠

  \a Ctrl-G 鈴聲

  \b Ctrl-H 退格符

  \f Ctrl-L 走行換頁

  \n Ctrl-J 新行

  \r Ctrl-M 回車

  \t Ctrl-I tab鍵

  \v Ctrl-X 水平制表符

  CHAR1-CHAR2 :字符范圍從 CHAR1 到 CHAR2 的指定,范圍的指定以 ASCII 碼的次序為基礎(chǔ),只能由小到大,不能由大到小。

  [CHAR*] :這是 SET2 專用的設(shè)定,功能是重復(fù)指定的字符到與 SET1 相同長度為止

  [CHAR*REPEAT] :這也是 SET2 專用的設(shè)定,功能是重復(fù)指定的字符到設(shè)定的 REPEAT 次數(shù)為止(REPEAT 的數(shù)字采 8 進位制計算,以 0 為開始)

  [:alnum:] :所有字母字符與數(shù)字

  [:alpha:] :所有字母字符

  [:blank:] :所有水平空格

  [:cntrl:] :所有控制字符

  [:digit:] :所有數(shù)字

  [:graph:] :所有可打印的字符(不包含空格符)

  [:lower:] :所有小寫字母

  [:print:] :所有可打印的字符(包含空格符)

  [:punct:] :所有標點字符

  [:space:] :所有水平與垂直空格符

  [:upper:] :所有大寫字母

  [:xdigit:] :所有 16 進位制的數(shù)字

  [=CHAR=] :所有符合指定的字符(等號里的 CHAR,代表你可自訂的字符)

  linux的tr命令的具體例子

  1、將文件file中出現(xiàn)的"abc"替換為"xyz"

  # cat file | tr "abc" "xyz" > new_file

  【注意】這里,凡是在file中出現(xiàn)的"a"字母,都替換成"x"字母,"b"字母替換為"y"字母,"c"字母替換為"z"字母。而不是將字符串"abc"替換為字符串"xyz"。

  2、使用tr命令“統(tǒng)一”字母大小寫

  (小寫 --> 大寫)

  # cat file | tr [a-z] [A-Z] > new_file

  (大寫 --> 小寫)

  # cat file | tr [A-Z] [a-z] > new_file

  3、把文件中的數(shù)字0-9替換為a-j

  # cat file | tr [0-9] [a-j] > new_file

  4、刪除文件file中出現(xiàn)的"Snail"字符

  # cat file | tr -d "Snail" > new_file

  【注意】這里,凡是在file文件中出現(xiàn)的'S','n','a','i','l'字符都會被刪除!而不是緊緊刪除出現(xiàn)的"Snail”字符串。

  5、刪除文件file中出現(xiàn)的換行'\n'、制表'\t'字符

  # cat file | tr -d "\n\t" > new_file

  不可見字符都得用轉(zhuǎn)義字符來表示的,這個都是統(tǒng)一的。

  6、刪除“連續(xù)著的”重復(fù)字母,只保留第一個

  # cat file | tr -s [a-zA-Z] > new_file

  7、刪除空行

  # cat file | tr -s "\n" > new_file

  8、刪除Windows文件“造成”的'^M'字符

  # cat file | tr -d "\r" > new_file

  或者

  # cat file | tr -s "\r" "\n" > new_file

  【注意】這里-s后面是兩個參數(shù)"\r"和"\n",用后者替換前者

  9、用空格符0替換制表符 class="main">

學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > Linux中的tr命令的詳細解釋

Linux中的tr命令的詳細解釋

時間: 佳洲1085 分享

  # cat file | tr -s " class="main">

學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > Linux中的tr命令的詳細解釋

Linux中的tr命令的詳細解釋

時間: 佳洲1085 分享

  10、把路徑變量中的冒號":",替換成換行符"\n"

  # echo $PATH | tr -s ":" "\n"

  補充:linux的tr命令關(guān)于表達字符串的特殊序列

  表達字符串的特殊序列

  String1 和 String2 變量中所包含的字符串可以使用以下的約定來表示:

  C1-C2

  指定了 C1 所指定的字符和 C2 所指定的字符之間(包括 C1 和 C2)進行整理的字符串。C1 所指定的字符必須整理放在由 C2 所指定的字符之前。

  注:在使用本方法指定子范圍時,當前語言環(huán)境對結(jié)果有重要影響。如果需要用命令來產(chǎn)生與語言環(huán)境無關(guān)的一致結(jié)果,那么應(yīng)該避免使用子范圍。

  [C*Number]

  Number 是一個整數(shù),它指定了由 C 所指定的字符的重復(fù)次數(shù)。除非其首位數(shù)字是 0,否則 Number 一律視為是十進制整數(shù);如果首位數(shù)字是 0,那么視為八進制整數(shù)。

  [C*]

  用 C 指定的字符填寫字符串。該選項只用于包含在 String2 中的字符串末尾,它強制 String2 中的字符串具有與由 String1 變量所指定的字符串一樣的字符數(shù)。*(星號)后面指定的任何字符都被忽略。

  [ :ClassName: ]

  alnum lower

  alpha print

  blank punct

  cntrl space

  digit upper

  graph xdigit

  除 [:lower:] 和 [:upper:] 轉(zhuǎn)換字符類之外,其他字符類指定的字符都按未指定的順序放入數(shù)組中。由于未定義字符類指定的字符的順序,僅當目的為將多個字符映射為一個時才使用這些字符。轉(zhuǎn)換字符類除外。

  有關(guān)字符類的詳細情況,請參閱 ctype 子例程。

  [ =C= ]

  指定所有的字符具有與 C 所指定的字符相同的等價類。

  \Octal

  指定字符,其編碼由 Octal 所指定的八進制值表示。Octal 可以是 1 位、2 位 或 3 位八進制整數(shù)??兆址梢杂?'

學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > Linux中的tr命令的詳細解釋

Linux中的tr命令的詳細解釋

時間: 佳洲1085 分享

Linux中的tr命令的詳細解釋

  Linux下的tr命令是一個專門用來處理字符的命令,下面由學習啦小編為大家整理了linux下的tr命令的詳細解釋,希望對大家有幫助!

  Linux中的tr命令的詳細解釋

  Linux中的tr命令用于轉(zhuǎn)換或刪除文件中的字符。

  tr 指令從標準輸入設(shè)備讀取數(shù)據(jù),經(jīng)過字符串轉(zhuǎn)譯后,將結(jié)果輸出到標準輸出設(shè)備。

  語法

  tr [-cdst][--help][--version][第一字符集][第二字符集]

  tr [OPTION]…SET1[SET2]

  參數(shù)說明:

  -c, --complement:反選設(shè)定字符。也就是符合 SET1 的部份不做處理,不符合的剩余部份才進行轉(zhuǎn)換

  -d, --delete:刪除指令字符

  -s, --squeeze-repeats:縮減連續(xù)重復(fù)的字符成指定的單個字符

  -t, --truncate-set1:削減 SET1 指定范圍,使之與 SET2 設(shè)定長度相等

  --help:顯示程序用法信息

  --version:顯示程序本身的版本信息

  字符集合的范圍:

  \NNN 八進制值的字符 NNN (1 to 3 為八進制值的字符)

  \ 反斜杠

  \a Ctrl-G 鈴聲

  \b Ctrl-H 退格符

  \f Ctrl-L 走行換頁

  \n Ctrl-J 新行

  \r Ctrl-M 回車

  \t Ctrl-I tab鍵

  \v Ctrl-X 水平制表符

  CHAR1-CHAR2 :字符范圍從 CHAR1 到 CHAR2 的指定,范圍的指定以 ASCII 碼的次序為基礎(chǔ),只能由小到大,不能由大到小。

  [CHAR*] :這是 SET2 專用的設(shè)定,功能是重復(fù)指定的字符到與 SET1 相同長度為止

  [CHAR*REPEAT] :這也是 SET2 專用的設(shè)定,功能是重復(fù)指定的字符到設(shè)定的 REPEAT 次數(shù)為止(REPEAT 的數(shù)字采 8 進位制計算,以 0 為開始)

  [:alnum:] :所有字母字符與數(shù)字

  [:alpha:] :所有字母字符

  [:blank:] :所有水平空格

  [:cntrl:] :所有控制字符

  [:digit:] :所有數(shù)字

  [:graph:] :所有可打印的字符(不包含空格符)

  [:lower:] :所有小寫字母

  [:print:] :所有可打印的字符(包含空格符)

  [:punct:] :所有標點字符

  [:space:] :所有水平與垂直空格符

  [:upper:] :所有大寫字母

  [:xdigit:] :所有 16 進位制的數(shù)字

  [=CHAR=] :所有符合指定的字符(等號里的 CHAR,代表你可自訂的字符)

  linux的tr命令的具體例子

  1、將文件file中出現(xiàn)的"abc"替換為"xyz"

  # cat file | tr "abc" "xyz" > new_file

  【注意】這里,凡是在file中出現(xiàn)的"a"字母,都替換成"x"字母,"b"字母替換為"y"字母,"c"字母替換為"z"字母。而不是將字符串"abc"替換為字符串"xyz"。

  2、使用tr命令“統(tǒng)一”字母大小寫

  (小寫 --> 大寫)

  # cat file | tr [a-z] [A-Z] > new_file

  (大寫 --> 小寫)

  # cat file | tr [A-Z] [a-z] > new_file

  3、把文件中的數(shù)字0-9替換為a-j

  # cat file | tr [0-9] [a-j] > new_file

  4、刪除文件file中出現(xiàn)的"Snail"字符

  # cat file | tr -d "Snail" > new_file

  【注意】這里,凡是在file文件中出現(xiàn)的'S','n','a','i','l'字符都會被刪除!而不是緊緊刪除出現(xiàn)的"Snail”字符串。

  5、刪除文件file中出現(xiàn)的換行'\n'、制表'\t'字符

  # cat file | tr -d "\n\t" > new_file

  不可見字符都得用轉(zhuǎn)義字符來表示的,這個都是統(tǒng)一的。

  6、刪除“連續(xù)著的”重復(fù)字母,只保留第一個

  # cat file | tr -s [a-zA-Z] > new_file

  7、刪除空行

  # cat file | tr -s "\n" > new_file

  8、刪除Windows文件“造成”的'^M'字符

  # cat file | tr -d "\r" > new_file

  或者

  # cat file | tr -s "\r" "\n" > new_file

  【注意】這里-s后面是兩個參數(shù)"\r"和"\n",用后者替換前者

  9、用空格符0替換制表符 class="main">

' 表示,并可以像任何其他的字符那樣進行處理。

  \ControlCharacter

  指定與 ControlCharacter 所指定的值相應(yīng)的控制字符??梢员硎疽韵轮担?/p>

  \a 警告

  \b 退格鍵

  \f 換頁

  \n 換行

  \r 回車

  \t 制表鍵

  \v 垂直制表鍵

  \

  規(guī)定 "\"(反斜杠)就是作反斜杠使用,而無作為轉(zhuǎn)義字符的任何特殊意義。

  \[

  指定“[”(左括號)就作為左括號使用,而無作為特定字符串序列的開始字符的任何特殊意義。

  \-

  指定“-”(負號)就作為負號使用,而無作為范圍分隔符的任何特殊意義。

  如果某個字符在 String1 中被指定過多次,那么該字符就被轉(zhuǎn)換成 String2 中為與 String1 中最后出現(xiàn)的字符相對應(yīng)的字符。

  如果由 String1 和 String2 指定的字符串長度不相同,那么 tr 命令就會忽略較長一個字符串中的多余字符。

3636552