1. 程式人生 > >linux 下的文字處理之字串替換——tr命令

linux 下的文字處理之字串替換——tr命令

通過使用 tr,您可以非常容易地實現 sed 的許多最基本功能。您可以將 tr 看作為 sed 的(極其)簡化的變體:它可以用一個字元來替換另一個字元,或者可以完全除去一些字元。您也可以用它來除去重複字元。這就是所有 tr 所能夠做的。 
    tr用來從標準輸入中通過替換或刪除操作進行字元轉換。tr主要用於刪除檔案中控制字元或進行字元轉換。使用tr時要轉換兩個字串:字串1用於查詢,字串2用於處理各種轉換。tr剛執行時,字串1中的字元被對映到字串2中的字元,然後轉換操作開始。
    帶有最常用選項的tr命令格式為:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
這裡:
-c 用字串1中字符集的補集替換此字符集,要求字符集為ASCII。
-d 刪除字串1中所有輸入字元。
-s 刪除所有重複出現字元序列,只保留第一個;即將重複出現字串壓縮為一個字串。
input-file是轉換檔名。雖然可以使用其他格式輸入,但這種格式最常用。

1、字元範圍


指定字串1或字串2的內容時,只能使用單字元或字串範圍或列表。
[a-z] a-z內的字元組成的字串。
[A-Z] A-Z內的字元組成的字串。
[0-9] 數字串。
\octal 一個三位的八進位制數,對應有效的ASCII字元。
[O*n] 表示字元O重複出現指定次數n。因此[O*2]匹配OO的字串。
tr中特定控制字元的不同表達方式
速記符含義八進位制方式
\a Ctrl-G  鈴聲\007
\b Ctrl-H  退格符\010
\f Ctrl-L  走行換頁\014
\n Ctrl-J  新行\012
\r Ctrl-M  回車\015
\t Ctrl-I  tab鍵\011
\v Ctrl-X  \030

例項:

、將檔案file中出現的"abc"替換為"xyz"

# cat file | tr "abc" "xyz" > new_file 【注意】這裡,凡是在file中出現的"a"字母,都替換成"x"字母,"b"字母替換為"y"字母,"c"字母替換為"z"字母。而不是將字串"abc"替換為字串"xyz"。

2、使用tr命令“統一”字母大小寫

(小寫 --> 大寫)
# cat file | tr [a-z] [A-Z] > new_file
(大寫 --> 小寫)
# cat file | tr [A-Z] [a-z] > new_file

3、把檔案中的數字0-9替換為a-j

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

4、刪除檔案file中出現的"Snail"字元

# cat file | tr -d "Snail" > new_file 【注意】這裡,凡是在file檔案中出現的'S','n','a','i','l'字元都會被刪除!而不是緊緊刪除出現的"Snail”字串。

5、刪除檔案file中出現的換行'\n'、製表'\t'字元

# cat file | tr -d "\n\t" > new_file 不可見字元都得用轉義字元來表示的,這個都是統一的。

6、刪除“連續著的”重複字母,只保留第一個

# 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後面是兩個引數"\r"和"\n",用後者替換前者

9、用空格符\040替換製表符\011

# cat file | tr -s "\011" "\040" > new_file

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

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

相關推薦

linux 文字處理字串替換——tr命令

通過使用 tr,您可以非常容易地實現 sed 的許多最基本功能。您可以將 tr 看作為 sed 的(極其)簡化的變體:它可以用一個字元來替換另一個字元,或者可以完全除去一些字元。您也可以用它來除去重複字元。這就是所有 tr 所能夠做的。      tr用來從標準輸入中通過

Linux許可權控制chmod與chown命令

chmod 用於配置檔案/目錄許可權 命名格式:chmod [選項] 檔案/目錄名 . 許可權類別: r 讀取 可用數字4表示 w 寫入 可用數字2表示 x 執行 可用數字1表示 . 歸屬類別: u 屬主 g 屬組 o 其它 a 所有人 . 操作符: + 給指定類別新增指定許可權(例如+x或a+x表

linux如何獲得特定字串前後幾行文字

如果要獲得一個檔案中的最後幾行,使用tail命令就可以很方便的實現。但在有些時候,會需要用到如標題中所描述的功能。 我舉一個具體的例子:在使用VASP計算彈性常數時,結果就是在字串“TOTAL ELASTIC MODUII” 之後的幾行,但這整個部分是在檔案的中間,如果

linux——高階文字處理命令wc、cut、sort

1.  wc :Word Count   命令的功能為統計指定檔案中的位元組數、字數、行數,並將統計結果顯示輸出   1.1 命令格式:     wc [選項]檔案...   1.2 命令引數:      -c 統計位元組數。     -l 統計行

linux文字編輯器vim的使用,複製-貼上-替換-行號-撤銷-多檔案操作

文字檔案的編輯命令:vim 1、vim的三種狀態模式 1)命令模式(預設) 備註:命令模式下輸入“:q!”可以退出vim。 2)可編輯模式(通過命令模式下輸入小寫“i”進入可編輯模式;按Esc退出至命令模式) 備註:小寫i,在當前游標處插入;小寫a,在當前游標後插入

Linux網路程式設計自定義協議進行併發多客戶端與伺服器的通訊(多程序處理併發)不足佔用資源太多

自定義協議訊息體*********msg.h*************#ifndef _MSG_H_#define _MSG_H_struct msg{ char head[10]; //頭部 char msg_chck; //效驗碼 char buff[512];/

LinuxShell程式設計算術運算和邏輯比較(數值型別、字串型別、檔案型別)

shell程式設計中的算術運算和邏輯比較,主要根據不同運算物件,採用相應的比較、運算方式。 一、數值型 算術運算 ,以變數自增1為例,+ - * / % 等運算方式同理,運算的方式大體四種: i=`expr $i + 1` let i+=1 , let的操作成員不需要

Linux文本處理grep

腳本 進行 mail egrep 一次 裏的 轉義 span 數字 Linux 文本處理之grep 我們經常會遇到只需要一個文件裏的只言片語,比如從文件裏獲取一串字符或者樣式,可以用cat +文件一個一個找,這樣不僅效率低,而且海量的字符會讓你奔潰的。這個時候需要

Linux文本處理sed

left p s 而不是 備份文件 完成後 rep oca 十分 新增 Linux文本處理之sed 上一篇我介紹了文本處理grep,現在我來介紹一下文本處理三劍客的第二劍客——sed。 sed 是一個比較古老的,功能十分強大的用於文本處理的流編輯器,加上

Linux基礎 ------- 文字處理利器sed

Linux文字處理利器 -- sed Sed是UNIX/Linux系統上提供的將編輯工具自動化的編輯器,可以直接編輯檔案。Sed以行為編輯 單位(行編輯器)。相比vim,gedit等編輯工具,Sed編輯檔案只需要一條命名就可以解決很多的 問題,而且Sed對正則表示式的支援也非常好,

Linux高階文字處理命令

cut 一、cut命令   功能:cut命令可以從一個文字檔案/文字流中提取文字列   語法:   cut -d '分割字元' -f fields  ##用於有特定分割字元   cut -c 字元區間  ##用於排列整齊的資訊   選項與引數: -d:後面接分隔字元。與 -f 一起使用;

Linux的資料處理--------- cut

高階文字處理命令 cut cut:一個選取命令,將一段資料經過分析,取出我們想要的資料。一般來說,選取的資料通常是針對行來進行分析的,並不是整篇資料一起分析 語法 : cut -nb 檔名 cut -c 檔名 cut -df 檔名 cut

Linux Shell 文字處理工具集錦(重點推薦)

        依稀記得某人曾今問過關於linux中的高階用法,當時覺得一臉懵逼,後來才發現,所謂的高階用法,無非是可以被python替換的shell基礎指令碼,及處理10GB資料量以下的linux基礎命令。現在看到了就整理了一下。 1.shell特殊符號

linux查詢文字多個字串命令

我們一般檢視一個字串在一個文字中出現在哪行,一般使用的命令如下 比如 檢視catalina.out 中 a 出現的行,如下 less catalina.2018-12-17.out |grep a 如果說想要同時檢視多個字串出現的行,怎麼處理呢 小編不是專業的,也不太懂這些個命令,遇

linux 文字操作 快捷鍵(持續更新。。。)

①  開啟一個終端,新建一個123.txt檔案 命令如下:    touch 123.txt ②  往123.txt輸入如下內容      This is my first C++ program.       Welcome to my world!      H

LinuxMongoDB叢集建立並配置副本叢集

案例演示:一、在linux環境下,在一臺機器上建立3個節點,建立一個測試為目的的副本集1.首先建立3個不同的資料儲存資料夾[[email protected] db]# cd /usr/local/mongodb/data/db [[email prote

LinuxPHP開發旅-2.開發環境相關設定探索

一.預設目錄在哪兒? 開始時面對該xampp整合開發環境的相關配置有點不知所錯,於是便先想著找httpd.conf,通過該檔案,對該整合環境的配置檔案關係有了大致瞭解,具體操作如下; cd /opt/lampp/etc vi httpd.conf 預設ServerName

LinuxPHP開發旅-1.開發環境搭建

一.下載相關安裝包 從官網:https://www.apachefriends.org/download.html 下載對應版本的安裝包,由於學的版本為5.5,選擇5.6版本安裝包  二.執行安裝 由於下載的檔案直接就是xampp-linux-x64-5.6.39-0-i

css文字處理字串超長展示省略號

眾所周知,通過css設定文字強制不換行超出用省略號表示很簡單: {     white-space: nowrap; 文字強制不換行;     text-overflow:ellipsis; 文字溢位顯示省略號;     overflo

linuxshell 程式設計擴充套件正則表示式

1. ‘+’ 限定字元 +限定符表示前面字元至少出現一次或者多次。與*不同在於0次或者多次 2. '?' 限定符 ?限定前面的字元最多出現一次。即出現0次或者1次 3. 數線 |和圓括號() 例如