shell shell指令碼的文字替換工具 tr

2021-10-08 23:01:46 字數 2488 閱讀 6309

總結tr命令介紹

tr是乙個超級好用的工具,他經常可以用來編寫單行命令,對來自標準輸入的內容進行字元的替換,字元的刪除,以及重複字元的壓縮。 也可以將一組字元變成另外一組字元。

標準輸入 stdin

常見引數

[root@rhce test]

# tr --help

用法:tr [選項]

... set1 [set2]

translate, squeeze, and/or delete characters from standard input,

writing to standard output.

-c, -c, --complement use the complement of set1

-d, --delete delete characters in set1, do not translate

-s, --squeeze-repeats replace each sequence of a repeated character

that is listed in the last specified set,

with a single occurrence of that character

-t, --truncate-set1 first truncate set1 to length of 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:] 所有的十六進製制數

[=字元=

] 所有和指定字元相等的字元

常用命令展示

1. 將輸入的字元小寫換成大寫

[root@rhce test]

# echo "zmgaosh" |tr 'a-z' 'a-z'

zmgaosh

這裡的『a-z』 'a-z』都是集合,除此之外還有『0-9』

2. 實現對密碼加密

加密:

[root@rhce test]

# echo 12345 | tr '0-9' 'bcdefghi' ### 加密

cdefg

解密:

[root@rhce test]

# echo 'cdefg' |tr 'bcdefghi' '0-9'

12345

3. 使用tr刪除字元
[root@rhce test]

# echo 'zmgaosh09 is me123' |tr -d '0-9'

zmgaosh is me

[root@rhce test]

#

4. 刪除多餘的空行
[root@rhce test]

# cat a.txt ## 測試檔案,有空行abc

cd

刪除空行:

[root@rhce test]

# cat a.txt |tr -s '\n'abc

cd

注意: 這裡只是對輸出的文字刪除了空行,原始檔內容並沒有修改

5. 將小寫變成大寫

[root@rhce test]

# echo 'hello*' |tr [:lower:] [:upper:]

hello*

總結

tr命令也是比較常用的命令之一,在shell指令碼中,等待使用者輸入y,如果使用者輸入的是小寫y,可以先轉換成大寫的y在做比較。或者在密碼檔案中定好格式,當使用者輸入密碼的時候轉換成對應的格式,做對比。

shell指令碼的熟練程度,取決於對系統是否熟悉。

Shell Shell指令碼執行

shell指令碼執行的方法有一下幾種 一.shellname.sh 二source shellname.sh 三chmod x shellname.sh shellname.sh 四sh shellname.sh區別和相同點 他們的相同點是都可以成功執行乙個shell指令碼。而不同點有 第一種方法 ...

Shell shell指令碼中的空格

1.定義變數時,號的兩邊不可以留空格.eg gender femal right gender femal wrong gender femal wrong gender test right 左邊是命令的話 號的右邊有空格是正確的 左邊不能有空格 gender test wrong 等號 左邊必須...

shell shell指令碼實戰 for迴圈

總結前言 迴圈語句常用於重複執行一條命令或一組命令等,直到達到結束條件後,則終止執行。在shell中常見的迴圈命令有while until for和select等 今天我們來 第乙個迴圈語句,for迴圈。for迴圈介紹 for迴圈語句與while迴圈語句類似,但for迴圈語句主要用於有限次的迴圈場景...