RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用Linux tr命令

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2022-12-12 17:21 ? 次閱讀

tr是Linux和Unix系統(tǒng)中的命令行程序,可轉換,刪除和壓縮標準輸入的字符,并將結果寫入標準輸出。

tr命令通常通過管道與其他命令組合使用,并且可以執(zhí)行刪除重復字符,將大寫轉換為小寫以及基本字符替換和刪除的操作。

在本教程中,我們將通過實際示例和最常見選項的詳細說明向您展示如何使用tr命令。

tr 命令選項

tr命令的語法形式是tr OPTION... SET1 [SET2]。OPTION選項是必須的參數,SET是字符集合,可以是一個多個字符集合。

tr命令默認接受具有相同長度的兩組字符,并用第二組中字符集合替換第一組存在的字符集合。

例如命令echo 'myfreax' | tr 'myf' 'red'm替換為r,y替換為e,將f替換為d

echo 'myfreax' | tr 'myf' 'red'
redreax

也可以使用字符范圍來定義字符集,減少繁瑣的輸入,例如你要輸入lmno,可以使用l-n代替。

也就是說命令echo 'myfreax' | tr 'lmno' 'wxyz'echo 'myfreax' | tr 'l-n' 'w-z'是等價的。

echo 'myfreax' | tr 'lmno' 'wxyz'
echo 'myfreax' | tr 'l-n' 'w-z'

當使用tr命令的-c/--complement選項時,tr命令將會替換第一組不存在的所有字符。

例如命令echo 'myfreax' | tr -c 'fa' 'xy'使用y替換字符串myfreax不是f或者a的字符。

您可能已經注意到輸出比輸入多一個可見的字符。這是因為echo命令會打印一個不可見的換行符\\n

tr命令也將\\n字符也替換為y。為了使echo命令不打印換行符,請使用echo命令的-n選項。

echo 'myfreax' | tr -c 'fa' 'xy'
echo -n 'myfreax' | tr -c  'fa' 'xy'
yyfyyayy

tr命令的-d/--delete選項刪除指定字符集合。例如命令echo 'myfreax' | tr -d 'ea'刪除字符串myfreaxea字符串。

在不壓縮字符的情況下刪除字符時,您只能指定一組。

echo 'myfreax' | tr -d 'ea'
myfrx

-s/--squeeze-repeats選項使用最后一個字符集合替換重復出現的字符。命令echo "GNU \\ Linux" | tr -s ' '刪除重復出現的空格字符。

在指定第二個字符集合時,首先使用第一個字符集合替換字符串GNU \\ Linux,然后使用第二個字符集合替換第一個字符集合。

echo "GNU     \\    Linux" | tr -s ' ' #GNU \\ Linux
echo "GNU     \\    Linux" | tr -s ' ' '_' #GNU_\\_Linux

tr 命令轉換小寫大寫

將小寫轉換為大寫或者大寫轉小寫。是tr命令的典型用例之一。在指定字符集合時可以使用[:lower:]匹配小寫字符,[:upper:]匹配大寫字符。

除了字符類,您還可以使用范圍,例如'a-z'匹配小寫字符串,'A-Z'匹配大寫字符。要將大寫轉換為小寫,只需切換字符集合的位置即可。

命令echo 'myfreax' | tr 'a-z' 'A-Z'轉換為大寫,echo 'myfreax' | tr 'A-Z' 'a-z'轉換為小寫。

echo 'myfreax' | tr '[:lower:]' '[:upper:]' #MYFREAX
echo 'myfreax' | tr 'a-z' 'A-Z' #MYFREAX

tr 命令刪除數字

[:digit:]代表所有數字字符,要刪除數字,可以組合使用tr命令的-cd選項刪除所有非數字字符。

tr命令的-c選項表示替換第一組不存在的所有字符。-s選項表示刪除字符一組字符集合存在的字符。

tr -cd [:digit:]組合起來就是刪除第一組字符集合不是數字的字符,如果你要刪除不是數字的字符,使用[:alpha:]替換[:digit:]。

echo "my phone is 123-456-7890" | tr -cd [:digit:]
1234567890

tr 命令在單詞末尾插入換行符

[:alnum:]代表所有數字和字符A-Za-z,要在單詞末尾插入換行符,可以組合使用tr命令的-cs選項刪除所有非數字字符。

tr命令的-c選項表示替換第一組不存在的所有字符。-s選項表示使用最后一個字符集合替換重復出現的字符。-c '[:alnum:]'表示搜索所有空白字符。

tr -cs '[:alnum:]' '\\n'組合起來就是搜索所有空白字符串替換為換行符\\n。

echo 'GNU is an operating system' | tr -cs '[:alnum:]' '\\n'
GNU
is
an
operating
system

tr 命令刪除空行

由于tr命令僅接受標準輸入,因此必須使用標準輸入重定向符號<,將標準輸入的鍵盤替換為文件。

tr命令的-s選項表示使用最后一個字符集合替換重復出現的字符。換行符號在單行中會被以為是重復字符串。

tr -s '\\n'組合就是替換重復的換行符,由于命令沒有指定第二個字符集合,因此沒有字符替換。

最后> new_file.txt就是將tr命令的標準輸出重定向到文件new_file.txt。

tr -s '\\n' < file.txt > new_file.txt

tr 命令打印$PATH目錄

$PATH環(huán)境變量是用冒號分隔的目錄列表,指示Shell程序在用戶運行命令時要搜索可執(zhí)行文件的目錄。

如要在每一行打印每個$PATH環(huán)境變量的目錄,只需要將冒號:替換為換行符號即可。

echo $PATH | tr  ':' '\\n'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin

結論

現在,您應該對如何使用Linux tr命令有很好的了解。tr只能使用單個字符。對于復雜的模式匹配和字符串處理應該使用sed或awk。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • UNIX
    +關注

    關注

    0

    文章

    296

    瀏覽量

    41478
  • 命令
    +關注

    關注

    5

    文章

    683

    瀏覽量

    22011
  • lunix
    +關注

    關注

    0

    文章

    3

    瀏覽量

    1035
收藏 人收藏

    評論

    相關推薦

    詳解Linux上兩個超有用重要的文本操作命令

    Linux 通過大量的命令使得文本操作和處理非常容易。像 tr 和 fmt 這樣的命令行工具可以幫助您從終端更改、格式化和修改文本文件。
    發(fā)表于 11-11 09:14 ?532次閱讀

    Linux文件內容查詢命令

    Linux文件內容查詢命令 Linux文件內容查詢命令  grep、fgrep和egrep命令  這組
    發(fā)表于 01-18 12:45 ?845次閱讀

    Linux目錄的創(chuàng)建與刪除命令

    Linux目錄的創(chuàng)建與刪除命令 Linux目錄的創(chuàng)建與刪除命令  mkdir命令  功能:創(chuàng)建一個目錄(類似DOS下的md
    發(fā)表于 01-18 12:46 ?1317次閱讀

    Linux與用戶有關的命令

    Linux與用戶有關的命令 Linux與用戶有關的命令  passwd命令  出于系統(tǒng)安全考慮,Lin
    發(fā)表于 01-18 12:46 ?768次閱讀

    Linux的常用網絡命令

    Linux的常用網絡命令 Linux 的常用網絡命令  計算機網絡的主要優(yōu)點是能夠實現資源和信息的共享,并且用戶可以遠程訪問信息。Linux
    發(fā)表于 01-18 12:47 ?1180次閱讀

    Linux關機命令詳解

    Linux關機命令詳解 在linux下一些常用的關機/重啟命令有shutdown、halt、reboot、及init,它們都 可以達到重啟系統(tǒng)的目的,但每個
    發(fā)表于 01-18 12:52 ?3630次閱讀

    Linux系統(tǒng)命令指南

    在“Linux 文件命令精通指南”中,我們討論了利用最基礎和最常用 Linux 文件命令所需的基本信息。在本文中,我將對 Linux 系統(tǒng)
    發(fā)表于 05-23 10:23 ?962次閱讀

    linux命令大全

    書中收集了豐富的Linux命令,是Linux技術開發(fā)者的好工具
    發(fā)表于 08-08 18:20 ?3次下載

    Linux命令大全

    Linux命令大全
    發(fā)表于 10-30 09:49 ?9次下載
    <b class='flag-5'>Linux</b>的<b class='flag-5'>命令</b>大全

    linux有哪些常用的命令

     Linux命令非常之多,分為內部命令和外部命令
    發(fā)表于 02-27 08:00 ?4次下載
    <b class='flag-5'>linux</b>有哪些常用的<b class='flag-5'>命令</b>

    常用Linux命令介紹

    linux命令是對Linux系統(tǒng)進行管理的命令。對于Linux系統(tǒng)來說,無論是中央處理器、內存、磁盤驅動器、鍵盤、鼠標,還是用戶等都是文件,
    的頭像 發(fā)表于 02-09 14:31 ?1056次閱讀

    淺析Linux精致的命令

    這只是一小部分常用的Linux命令Linux有很多命令可以使用。建議通過man命令來查看命令
    的頭像 發(fā)表于 04-24 16:28 ?1543次閱讀

    shell命令linux命令一樣嗎

    Shell命令Linux命令并不完全一樣。 首先,Shell是一種命令行解釋器,它是用來解釋和執(zhí)行用戶輸入的命令的。Shell既是一種
    的頭像 發(fā)表于 11-08 10:51 ?2862次閱讀

    linux重啟命令有哪些

    Linux是一種自由和開放源代碼的操作系統(tǒng),被廣泛應用于服務器和嵌入式設備。在Linux中,有多種命令用于重啟系統(tǒng)。在本文中,我們將詳細介紹常用的Linux重啟
    的頭像 發(fā)表于 11-17 09:49 ?2026次閱讀

    Linux實用命令大全

    Linux實用命令大全
    的頭像 發(fā)表于 10-23 13:50 ?220次閱讀
    <b class='flag-5'>Linux</b>實用<b class='flag-5'>命令</b>大全
    RM新时代网站-首页