亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux系統中tr命令的基本使用

添加時間:2016-3-20 18:39:02  添加: 思海網絡 
Linux系統中tr命令的基本使用:

用法: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

關鍵字:Linux、系統、tr、命令
分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站