shell實現tr刪除替換詳解

2022-09-26 16:48:12 字數 2302 閱讀 3399

tr(translate縮寫)主要用於刪除檔案中的控制字元,或進行字元轉換。

語法:tr [–c/d/s/t] [set1] [set2]   #set1: 字符集1;程式設計客棧set2:字符集2

-c:complement,用set2替換除set1以外的字元。

-d:delete,刪除set1中所有的字元,不轉換。

-s:squeeze-repeats,壓縮set1中重複的字元。

-t:truncate-set1,將set1用set2轉換,一般預設為-t。

1、去除重複的字元

#刪除空白行就是刪除換行符/n。

#注意:這些空白行上只有回車符,沒有空格符。

$ cat test.txt  

i love linux!

hello world!

shell is worthy to been studied.

#這裡用換行符的轉義字元\n.

#注意:此處用-s刪除了多餘的換行符,如果用-d,則會刪除所有的換行符.

$  cat test.txt | tr -s ["\n"]

&nbs程式設計客棧p;    i love linux!

hello world!

shell is worthy to been studied.

#也可以用八進位制符\012,\012與\n都是換行符。

$  cat test.txt | tr -s "[\012]"

i love linux!

hello world!

shell is worthy to been studied.

2、大小寫互換

# 將語句中所有的小寫字母變成大寫字母,其中-t可省略。

$ echo "hello world i love you" |tr [-t] [a-z] [a-z]

hello world i love you

# 將語句中所有的大寫字母變成小寫字母。

$ echo "hello world i love you" |tr [a-z] [a-z]

hello world i love you

# 也可以利用字元類進行轉換。

# [:lower:]代表小寫字母,[:upper:]代表大寫字母。

$ echo "hello world i love you" |tr [:lower:] [:upper:]

hello world i love you

3、刪除指定的字元

$ cat test.txt

monday     09:00

tuesday    09:10

wednesday  10:11

thursday   11:30

friday     08:00

saturday   07:40

sunday     10:00

# 現在要刪除處理星期之外的所有字元。

# -d代表刪除,[0-9]代表所有的數字,[: ]代表冒號和空格。

$  cat test.txt | tr -d "[0-9][: ]"

monday

tuesday

wednesday

thursday

friday

saturday

sunday

4、利用-c進行補集的替換

# 有時候在文字中我們只知道要保留的一些字元,其他字元種類繁多,就可以使用補集的替換。

$ cat test.txt

monday     09:00

tuesday    09:10

wednesday  10:11

thursday   11:30

friday     08:00

saturday   07:40

sunday     10:00

# 我們只需要星期,則思路就是除了字母,其他統統替換掉。

# 這裡,-c:用換行符替換掉除了字母外的所有字元;-s:刪除多餘的換行符。

$  cat test.txt|tr -cs  "[a-z][a-z]" "\n"

monday

tuesday

wednesday

thursday

friday

saturday

sunday

總結:其中大小寫字母的轉換,刪除不需要的字元比較常用。tr語法簡單,易用。

本文標題: shell實現tr刪除替換詳解

本文位址: /os/linux/117796.html

shell 變數刪除與替換

1 從左往右刪除匹配內容 root localhost echo 獲取變數值 root localhost echo 獲取變數長度 16 root localhost echo 從左往右最短匹配 root localhost echo 從左往右最長匹配 cn2 從右往左刪除匹配內容 root loc...

shell 變數內容刪除 替換

鳥哥例項練習 變數設定方式說明 若變數內容從頭開始的資料符合 關鍵字 則將符合的最短資料刪除 若變數內容從頭開始的資料符合 關鍵字 則將符合的最短資料刪除 若變數內容從尾向前的資料符合 關鍵字 則將符合的最短資料刪除 若變數內容從尾向前的資料符合 關鍵字 則將符合的最長資料刪除 若變數內容符合 舊字...

JS實現新增和刪除TR行(一)

經過在網上的查詢,終於弄好了js新增和刪除tr的效果。js 如下 新增tr的js function addremark 在實際中,我們更多的是要在指定行新增tr。這樣,我們就需要對insertrow 方法進行設定。insertrow 預設在table表的最後一行再新增一行。而insertrow n ...