熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

tr的使用方法

2013-11-13 15:26:20  來源: Oracle 

  tr用來從標准輸入中通過替換或刪除操作進行字符轉換t r主要用於刪除文件中控制字符或進行字符轉換使用t r時要轉換兩個字符串字符串用於查詢字符串用於處理各種轉換
  t r剛執行時字符串中的字符被映射到字符串中的字符然後轉換操作開始
  本章內容有
  * 大小寫轉換
  * 去除控制字符
  * 刪除空行
  帶有最常用選項的t r命令格式為
  t r c d s [ s t r i n g _ t o _ t r a n s l a t e _ f r o m ] [ s t r i n g _ t o _ t r a n s l a t e _ t o ] i n p u t _
  f i l e
  這裡
  c 用字符串中字符集的補集替換此字符集要求字符集為A S C I I
  d 刪除字符串中所有輸入字符
  s 刪除所有重復出現字符序列只保留第一個即將重復出現字符串壓縮為一個字符
  串
  I n p u t f i l e是轉換文件名雖然可以使用其他格式輸入但這種格式最常用
   字符范圍
  使用t r時可以指定字符串列表或范圍作為形成字符串的模式這看起來很像正則表達式但實際上不是指定字符串或字符串的內容時只能使用單字符或字符串范圍或列表
  [az] az內的字符組成的字符串
  [AZ] AZ內的字符組成的字符串
  [] 數字串
  /octal 一個三位的八進制數對應有效的A S C I I字符
  [O*n] 表示字符O重復出現指定次數n因此[ O * ]匹配O O的字符串
  大部分t r變種支持字符類和速記控制字符字符類格式為[c l a s s ]包含數字希臘字母
  空行小寫大寫c n t r l鍵空格點記符圖形等等 包括最常用的控制字符的速記方式及三位八進制引用方式
  當用一個單字符替換一個字符串或字符范圍時注意字符並不放在方括號裡( [ ])一些系統也可以使用方括號例如可以寫成[\ ]或\ t r也允許不加引號因此命令中看到單引號而不是雙引號時也不要感到奇怪
  像大多數系統工具一樣 t r也受特定字符的影響因此如果要匹配這些字符需使用反斜線屏蔽其特殊含義例如用\ {指定花括號左邊可以屏蔽其特殊含義
  表 tr中特定控制字符的不同表達方式
  速記符含義八進制方式
  \ a CtrlG 鈴聲\
  \ b CtrlH 退格符\
  \f CtrlL 走行換頁\
  \n CtrlJ 新行\
  \ r CtrlM 回車\
  \t CtrlI tab鍵\
  \ v CtrlX \
   保存輸出
  要保存輸出結果需將之重定向到一個文件下面的例子重定向輸出到文件r e s u l t s t x t
  輸入文件是c o p s t x t
  現在看一些例子
   去除重復出現的字符
  下面文件包含了一些打印錯誤這種情況時常發生例如在v i編輯器中偶爾按住一個鍵不放
  如果要去除重復字母或將其壓縮在一起使用 s選項因為都是字母故使用[ a z ]輸入文件重定向到t r命令
  所有重復字符被壓縮成一個如果使用c a t命令再將結果管道輸出至t r結果是一樣的
   刪除空行
  要刪除空行可將之剔出文件下面是一個文件p l a n e t x t文本間有許多空行
  使用 s來做這項工作換行的八進制表示為\ 命令為
  也可以使用換行速記方式\ n這裡用單引號(通常用雙引號)
   大寫到小寫
  除了刪除控制字符轉換大小寫是t r最常用的功能為此需指定即將轉換的小寫字符[ a z ]
  和轉換結果[ A Z ]
  第一個例子t r從一個包含大小寫字母的字符串中接受輸入
  同樣也可以使用字符類[l o w e r]和[u p p e r]
  將文本文件大寫轉換為小寫並輸出至一個新文件格式為
  這裡f i l e t o t r a n s l a t e保存即將轉換的文件 n e w f i l e n a m e為保存結果的新文件名例如
   小寫到大寫
  轉換小寫到大寫與上一節大寫到小寫過程剛好相反以下有兩個例子
  將文本文件從小寫轉換為大寫並將結果存入一個新文件格式為
  f i l e t o t r a n s l a t e保存即將轉換的文件 n e w f i l e n a m e保存結果文件例如
   刪除指定字符
  偶爾會從下載文件中刪除只包含字母或數字的列需要結合使用 c和 s選項完成此功能
  下面的文件包含一個星期的日程表任務是從其中刪除所有數字只保留日期日期有大寫也有小寫格式因此需指定兩個字符范圍[ a z ]和[ A Z ]命令tr cs [az][AZ][\*]將文件每行所有不包含在[ a z ]或[ A Z ](所有希臘字母)的字符串放在字符串中並轉換為一新行 s選項表明壓縮所有新行 c表明保留所有字母不動原文件如下後跟t r命令
   轉換控制字符t r的第一個功能就是轉換控制字符特別是從d o s向U N I X下載文件時忘記設置f t p關於回車換行轉換的選項時更是如此
  下面是故意沒有設置轉換開關的一個文本文件是關於文具需求的一部分內容使用c a t
   v顯示控制字符
  猜想^ ^ ^ ^ ^ ^是t a b鍵每一行以C t r l M結尾文件結尾C t r l Z以下是改動方法
  使用 s選項查看A S C I I表^的八進制代碼是 ^ M是 t a b鍵是 ^ Z是 下面將按步驟完成最終功能
  用t a b鍵替換^ ^ ^ ^ ^ ^命令為 \ [ \ * ] 將結果重定向到臨時工作文件s t a t t m p
  用新行替換每行末尾的^ M並用\ n去除^ Z輸入要來自於臨時工作文件s t a t t m p
  最後去除所有的控制字符文件就可以使用了
   快速轉換
  如果需要刪除文件中^ M並代之以換行使用命令
  或者用下述命令得同樣結果
  也可以用下述命令
  另一個一般的D o s到U N I X轉換是命令
  將刪除所有^ M和^ Z代之以換行
  要刪除所有的t a b鍵代之以空格使用命令
  替換p a s s w d文件中所有冒號代之以t a b鍵可以增加可讀性將冒號引起來指定替換字符串中t a b鍵八進制值 下面是p a s s w d文件後跟t r命令結果
  或者用下述命令得同樣結果這裡使用t a b鍵的速記符
   匹配多於一個字符
  可以使用[ c h a r a c t e r * n ]格式匹配多於一個字符下述文件列出系統硬盤信息其中包含了
  系統已經注冊的和未識別的第一列是數字如果不全是表明第二列相應硬盤已經注冊
  有時全部為看起來很煩人找個吸引人注意力的符號來代替它以便一眼就能看出哪個硬盤已注冊哪個不可識別原文件如下
  從文件列表中知道有一個硬盤未注冊因此用星號代替所有的模式為[ * ]意即匹配至少替換字符串為星號過濾命令及結果如下
  現在從文件中可以直接看出哪個未注冊
   小結
  t r主要用於字符轉換或者抽取控制字符本章所有功能都可以用s e d來完成但有些人寧願使用t r因為t r更加快捷容易
  

From:http://tw.wingwit.com/Article/program/Oracle/201311/16707.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.