中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

tr命令怎么在Linux系統中使用

發布時間:2021-03-12 15:38:03 來源:億速云 閱讀:129 作者:Leah 欄目:系統運維

本篇文章為大家展示了tr命令怎么在Linux系統中使用,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

用法:tr [選項]... SET1 [SET2]
從標準輸入中替換、縮減和/或刪除字符,并將結果寫到標準輸出。

  -c, -C, --complement        首先補足SET1
  -d, --delete            刪除匹配SET1 的內容,并不作替換
  -s, --squeeze-repeats    如果匹配于SET1 的字符在輸入序列中存在連續的
                重復,在替換時會被統一縮為一個字符的長度
  -t, --truncate-set1        先將SET1 的長度截為和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:]    所有的十六進制數
  [=字符=]    所有和指定字符相等的字符

僅在SET1 和SET2 都給出,同時沒有-d 選項的時候才會進行替換。
僅在替換時才可能用到-t 選項。如果需要SET2 將被通過在末尾添加原來的末字符的方式
補充到同SET1 等長。SET2 中多余的字符將被省略。只有[:lower:] 和[:upper:]
以升序展開字符;在用于替換時的SET2 中以成對表示大小寫轉換。-s 作用于SET1,既不
替換也不刪除,否則在替換或展開后使用SET2 縮減。

tr命令中的參數 -c 比較實用,可以用字符串1中字符集的補集替換此字符集,要求字符集為A S C I I。然后在終端上試了一條命令:

代碼如下:


tr -cs "[a-z][A-Z]" "[\012*]" <diary.txt


這是將文件 diary.txt 內的非字符數據轉換成換行符,然后用 -s 選項刪除所有重復出現字符序列,只保留第一個;即將重復出現字符串壓縮為一個字符串。

后來仔細看這條命令時,發現在 \012 后面加了個 * ,當我去掉這個 * 時,再運行,發現得出的結果全在同一行,并且用 ] (左中括號)隔開,然后我又試著 用 \n 代替 \012,
發現也是只有在 \n 后加 * 才得出正確的結果。后來將中括號去掉。這是不要 * 時可以輸出正確結果,發而加了 * 后會將結果都輸出在一行,中間用 * 隔開。

猜想:是否在加中括號后,里面的特殊字符后都要加 *,無論是用字母表示的,還是用八進制數表示的。

下面再舉一些例子:

代碼如下:


[root@localhost zhangy]# echo "TANK" |tr A-Z a-z   #大寫字母轉小寫


tank

代碼如下:


[root@localhost zhangy]# echo 'tank zhang' | tr a-z A-Z    #小寫字線轉大寫


TANK ZHANG

代碼如下:


[root@localhost zhangy]# cat aaa.txt       #原文件


aaa

bbb

代碼如下:


[root@localhost zhangy]# cat aaa.txt|tr 'a' 'c'     #字母c替換字母a


ccc

bbb

代碼如下:


[root@localhost zhangy]# cat aaa.txt|tr -d 'a'    #刪除所有字母a

bbb

代碼如下:


[root@localhost zhangy]# cat aaa.txt|tr -d '\n\t'   刪除文件file中出現的換行'\n'、制表'\t'字符


aaabbb

代碼如下:


[root@localhost zhangy]# cat aaa.txt|tr -s [a-zA-Z]   #刪除重復的字母


a

b

代碼如下:


[root@localhost zhangy]# cat aaa.txt|tr -s '\n'    #刪除空行


aaa
bbb

代碼如下:


[root@localhost zhangy]# cat aaa.txt |tr -s '\011' '\040'   #用空格符\040替換制表符\011


aaa

bbb

代碼如下:


# tr a c < test  #將test文件中的a變成c

上述內容就是tr命令怎么在Linux系統中使用,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湄潭县| 宝清县| 贵南县| 东源县| 乐东| 盐边县| 察隅县| 盐源县| 石屏县| 延长县| 贵州省| 阿拉善左旗| 南雄市| 白城市| 五常市| 曲松县| 高唐县| 阿拉善右旗| 巴塘县| 泉州市| 嵩明县| 太保市| 双牌县| 巫山县| 巧家县| 伊川县| 梓潼县| 瑞昌市| 太湖县| 孝义市| 东乡| 普定县| 潮安县| 泰宁县| 闵行区| 图片| 酉阳| 淮滨县| 四子王旗| 汉沽区| 繁昌县|