青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

為生存而奔跑

   :: 首頁 :: 聯系 :: 聚合  :: 管理
  271 Posts :: 0 Stories :: 58 Comments :: 0 Trackbacks

留言簿(5)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 331733
  • 排名 - 74

最新評論

閱讀排行榜

評論排行榜

1、大小寫轉換
echo  "hello world" | tr "[a-z]" "[A-Z]"
輸出HELLO WORLD
也可以用字符類[:lower:] [:upper:]
echo  "hello world" | tr  [:lower:] [:upper:]
2、tr -c sourcelist replacelist
把輸入字符串中所有不在sourcelist中的字符替換為replacelist
常與-s一起使用
-s 濃縮重復的字符。如果標準輸入中連續重復出現source-char-list里所列的字符,則將其濃縮成一個?;蛘邔⑵錆饪s成replace-char-list中的字符。
-d:        刪除source-char-list中所定義的字符。



關于tr
t r用來從標準輸入中通過替換或刪除操作進行字符轉換。t r主要用于刪除文件中控制字符或進行字符轉換。使用t r時要轉換兩個字符串:字符串1用于查詢,字符串2用于處理各種轉換。
t r剛執行時,字符串1中的字符被映射到字符串2中的字符,然后轉換操作開始。

下面講述:


QUOTE:
" 大小寫轉換。
" 去除控制字符。
" 刪除空行。



帶有最常用選項的t r命令格式為:
  1. t r - c - d - s [ " s t r i n g 1 _ t o _ t r a n s l a t e _ f r o m " ] [ " s t r i n g 2 _ t o _ t r a n s l a t e _ t o " ] i n p u t _f i l e
復制代碼


這里:


QUOTE:
-c 用字符串1中字符集的補集替換此字符集,要求字符集為A S C I I。
-d 刪除字符串1中所有輸入字符。
-s 刪除所有重復出現字符序列,只保留第一個;即將重復出現字符串壓縮為一個字符串。


I n p u t - f i l e是轉換文件名。雖然可以使用其他格式輸入,但這種格式最常用。

字符范圍
使用t r時,可以指定字符串列表或范圍作為形成字符串的模式。這看起來很像正則表達式,但實際上不是。指定字符串1或字符串2的內容時,只能使用單字符或字符串范圍或列表。


QUOTE:
[a-z] a-z內的字符組成的字符串。
[A-Z] A-Z內的字符組成的字符串。
[0-9] 數字串。
/octal 一個三位的八進制數,對應有效的A S C I I字符。
[O*n] 表示字符O重復出現指定次數n。因此[ O * 2 ]匹配O O的字符串。
大部分t r變種支持字符類和速記控制字符。
字符類格式為[:c l a s s ],包含數字、希臘字母、空行、小寫、大寫、c n t r l鍵、空格、點記符、圖形等等。



下表包括最常用的控制字符的速記方式及三位八進制引用方式。
當用一個單字符替換一個字符串或字符范圍時,注意字符并不放在方括號里( [ ])。一些系統也可以使用方括號,例如可以寫成[“\ 0 1 2”]或“\ 0 1 2”,t r也允許不加引號,因此命令中看到單引號而不是雙引號時也不要感到奇怪。
像大多數系統工具一樣, t r也受特定字符的影響。因此如果要匹配這些字符,需使用反斜線屏蔽其特殊含義。例如,用\ {指定花括號左邊可以屏蔽其特殊含義。

tr中特定控制字符的不同表達方式
  1. 速記符含義八進制方式
  2. \ a Ctrl-G 鈴聲\ 0 0 7
  3. \ b Ctrl-H 退格符\ 0 1 0
  4. \f Ctrl-L 走行換頁\ 0 1 4
  5. \n Ctrl-J 新行\ 0 1 2
  6. \ r Ctrl-M 回車\ 0 1 5
  7. \t Ctrl-I tab鍵\ 0 11
  8. \ v Ctrl-X \ 0 3 0去除重復出現的字符
    下面文件包含了一些打印錯誤。這種情況時常發生,例如在v i編輯器中,偶爾按住一個鍵不放。
    1. [sam@chenwy split]$ cat opps.txt
    2. And the cowwwwws went homeeeeeeeeeeeee
    3. Or did theyyyyyyyyyyyyy
    復制代碼


    如果要去除重復字母或將其壓縮在一起,使用- s選項。因為都是字母,故使用[ a - z ]。輸入文件重定向到t r命令。
    1. [sam@chenwy split]$ tr -s "[a-z]" < opps.txt
    2. And the cows went home
    3. Or did they
    復制代碼


    所有重復字符被壓縮成一個。如果使用c a t命令,再將結果管道輸出至t r,結果是一樣的。
    1. [sam@chenwy split]$ cat opps.txt | tr -s "[a-z]"
    2. And the cows went home
    3. Or did they
    復制代碼


    刪除空行
    要刪除空行,可將之剔出文件。下面是一個文件p l a n e . t x t。文本間有許多空行。
    1. [sam@chenwy split]$ cat plane.txt
    2. plane.txt
    3. 9879932 Spitfire




    4. 190992 Lancaster




    5. 238991 Typhoon
    復制代碼


    使用- s來做這項工作。換行的八進制表示為\ 0 1 2,命令為:
    1. [sam@chenwy split]$ tr -s "[\012]" < plane.txt
    2. plane.txt
    3. 9879932 Spitfire
    4. 190992 Lancaster
    5. 238991 Typhoon
    復制代碼


    也可以使用換行速記方式\ n。
    1. [sam@chenwy split]$ tr -s "[\n]" < plane.txt
    2. plane.txt
    3. 9879932 Spitfire
    4. 190992 Lancaster
    5. 238991 Typhoon
    復制代碼


    大寫到小寫
    除了刪除控制字符,轉換大小寫是t r最常用的功能。為此需指定即將轉換的小寫字符[ a - z ]和轉換結果[ A - Z ]。
    第一個例子,t r從一個包含大小寫字母的字符串中接受輸入。
    1. [sam@chenwy split]$ echo "May Day,May Day,Going Down.." | tr "[a-z]" "[A-Z]"
    2. MAY DAY,MAY DAY,GOING DOWN..
    復制代碼


    同樣,也可以使用字符類[:l o w e r:]和[:u p p e r:]。
    1. [sam@chenwy split]$ echo "May Day,May Day,Going Down.." | tr "[:lower:]" "[:upper:]"
    2. MAY DAY,MAY DAY,GOING DOWN..
    復制代碼


    刪除指定字符
    偶爾會從下載文件中刪除只包含字母或數字的列。需要結合使用- c和- s選項完成此功能。
    下面的文件包含一個星期的日程表。任務是從其中刪除所有數字,只保留日期。日期有大寫,也有小寫格式。因此需指定兩個字符范圍[ a - z ]和[ A - Z ],命令tr -cs "[a-z][A-Z]""[\012*]"將文件每行所有不包含在[ a - z ]或[ A - Z ](所有希臘字母)的字符串放在字符串1中并轉換為一新行。- s選項表明壓縮所有新行, - c表明保留所有字母不動。原文件如下,后跟t r命令:
    1. [sam@chenwy split]$ cat diary.txt
    2. mondy 10:50
    3. Tuesday 15:00
    4. wednesday 15:30
    5. thurday 10:30
    6. Fridya 09:20
    復制代碼

    1. [sam@chenwy split]$ tr -cs "[a-z][A-Z]" "[\012*]" <diary.txt
    2. mondy
    3. Tuesday
    4. wednesday
    5. thurday
    6. Fridya
    復制代碼


    轉換控制字符
    t r的第一個功能就是轉換控制字符,特別是從d o s向U N I X下載文件時,忘記設置f t p關于回車換行轉換的選項時更是如此。
    下面是故意沒有設置轉換開關的一個文本文件,是關于文具需求的一部分內容。使用c a t- v顯示控制字符。
    1. [sam@chenwy split]$ cat -v stat.tr
    2. Boxes paper     12^M
    3. Clips metal     50^M
    4. Pencils-meduim  10^M
    5. ^Z
    復制代碼


    猜想‘中間空的是’是t a b鍵。每一行以C t r l - M結尾,文件結尾C t r l - Z,以下是改動方法。
    使用- s選項,查看A S C I I表。^的八進制代碼是1 3 6,^ M是0 1 5,t a b鍵是0 11,^ Z是0 3 2 ,下面將按步驟完成最終功能。

    用新行替換每行末尾的^ M,并用\ n去除^ Z,輸入要來自于臨時工作文件s t a t . t m p。將結果重定向到臨時工作文件s t a t . t m p。
    1. [sam@chenwy split]$ tr -s "[\015\032]" "\n" <stat.tr >stam.tmp
    2. [sam@chenwy split]$ cat -v stam.tmp
    3. Boxes paper     12
    4. Clips metal     50
    5. Pencils-meduim  10
    復制代碼


    快速轉換
    如果需要刪除文件中^ M,并代之以換行。使用命令:
    1. [sam@chenwy split]$ tr -s "[\015]" "\n" < stat.tr |cat -v
    2. Boxes paper     12
    3. Clips metal     50
    4. Pencils-meduim  10
    5. ^Z
    復制代碼


    或者用下述命令得同樣結果。
    1. [sam@chenwy split]$ tr -s "[\015]" "\n" < stat.tr >stat1.tr
    2. [sam@chenwy split]$ cat stat1.tr
    3. Boxes paper     12
    4. Clips metal     50
    5. Pencils-meduim  10
    復制代碼


    也可以用下述命令:
    1. [sam@chenwy split]$ tr -s "[\r]" "\n" < stat.tr
    復制代碼

    1. [sam@chenwy split]$ tr -s "\r" "\n" < stat.tr
    復制代碼


    另一個一般的D o s到U N I X轉換是命令:
    1. [sam@chenwy split]$ tr -s "[\015\032]" "[\012*]" < stat.tr
    2. Boxes paper     12
    3. Clips metal     50
    4. Pencils-meduim  10
    復制代碼

    將刪除所有^ M和^ Z,代之以換行。

    要刪除所有的t a b鍵,代之以空格,使用命令:
    1. [sam@chenwy split]$ tr -s "[\011]" "[\040*]" < stat.tr >temp.txt
    2. [sam@chenwy split]$cat -v temp.txt
    3. Boxes paper 12^M
    4. Clips metal 50^M
    5. Pencils-meduim 10^M
    6. ^Z
    復制代碼


    替換p a s s w d文件中所有冒號,代之以t a b鍵,可以增加可讀性。將冒號引起來,指定替換字符串中t a b鍵八進制值0 11,下面是p a s s w d文件,后跟t r命令結果:
    1. [sam@chenwy split]$ tr -s "[:]" "[\t]" < passwd
    2. root    x       0       0       root    /root   /bin/bash
    3. bin     x       1       1       bin     /bin    /sbin/nologin
    4. daemon  x       2       2       daemon  /sbin   /sbin/nologin
    5. .....................
    復制代碼



    1. [sam@chenwy split]$ tr -s "[:]" "[\011]" < passwd
    復制代碼


    匹配多于一個字符
    可以使用[ c h a r a c t e r * n ]格式匹配多于一個字符。下述文件列出系統硬盤信息,其中包含了系統已經注冊的和未識別的。第一列是數字,如果不全是0,表明第二列相應硬盤已經注冊。
    有時全部為0看起來很煩人,找個吸引人注意力的符號來代替它,以便一眼就能看出哪個硬盤已注冊,哪個不可識別。原文件如下:
    1. [sam@chenwy split]$ cat hdisk.txt
    2. 15566 hdisk3
    3. 456554 hdisk2
    4. 0000 hdisk1
    復制代碼


    從文件列表中知道,有一個硬盤未注冊,因此用星號代替所有的0。模式為[ 0 * 4 ],意即匹配至少4個0,替換字符串為星號,過濾命令及結果如下:
    1. [sam@chenwy split]$ tr "[0*4]" "*" < hdisk.txt
    2. 15566 hdisk3
    3. 456554 hdisk2
    4. **** hdisk1
    復制代碼


    但我發現加上[]后結果不對了
    1. [sam@chenwy split]$ tr "[0*4]" "[*]" < hdisk.txt
    2. 15566 hdisk3
    3. 456554 hdisk2
    4. ]]]] hdisk1
    復制代碼


posted on 2010-05-20 00:08 baby-fly 閱讀(533) 評論(0)  編輯 收藏 引用 所屬分類: Ubuntu&Linux
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美福利一区二区| 国产欧美亚洲日本| 亚洲午夜国产成人av电影男同| 媚黑女一区二区| 欧美电影电视剧在线观看| 免费久久久一本精品久久区| 噜噜噜躁狠狠躁狠狠精品视频| 久久一区视频| 最新国产精品拍自在线播放| 亚洲福利视频三区| 99pao成人国产永久免费视频| 99ri日韩精品视频| 亚洲欧美成人一区二区在线电影 | 免费久久99精品国产自在现线| 久热国产精品| 夜夜嗨一区二区三区| 亚洲欧美日韩国产成人精品影院 | 久久久久国产精品麻豆ai换脸| 久久午夜电影网| 欧美日韩国产一区二区三区| 国产农村妇女精品一区二区| 亚洲电影天堂av| 亚洲视频一区二区| 久久一二三四| 在线综合+亚洲+欧美中文字幕| 午夜免费日韩视频| 欧美大片免费看| 国产日韩一区在线| 一本一本久久a久久精品综合妖精| 亚洲天堂偷拍| 蜜桃久久精品一区二区| 亚洲国产精品一区二区尤物区 | 在线一区二区三区四区五区| 久久狠狠婷婷| 欧美午夜电影在线观看| 亚洲国产日韩欧美一区二区三区| 午夜精品99久久免费| 欧美激情第五页| 欧美一区二区播放| 国产精品扒开腿做爽爽爽视频| 亚洲第一色在线| 久久精品国产99精品国产亚洲性色 | 午夜精品福利电影| 欧美日韩精品系列| 亚洲高清精品中出| 欧美主播一区二区三区美女 久久精品人| 欧美激情欧美狂野欧美精品 | 亚洲黄色在线观看| 欧美一区二区三区视频在线| 欧美日韩综合久久| 日韩写真视频在线观看| 欧美黑人国产人伦爽爽爽| 国产综合香蕉五月婷在线| 亚洲一区二区毛片| 亚洲伦伦在线| 欧美激情国产日韩精品一区18| 伊人伊人伊人久久| 久久久蜜桃精品| 午夜精品视频在线观看| 国产精品jizz在线观看美国| 制服丝袜亚洲播放| 日韩视频精品在线| 欧美日韩免费在线视频| 亚洲美女黄色| 亚洲精品综合久久中文字幕| 欧美激情第8页| 亚洲精品女人| 亚洲精品综合久久中文字幕| 欧美激情在线| 一区二区高清| 国产精品99久久久久久久女警 | 一本色道久久综合亚洲精品婷婷| 欧美高清视频在线观看| 亚洲人成绝费网站色www| 亚洲高清视频在线| 久久综合中文字幕| 欧美大秀在线观看| 国产精品久久久久毛片大屁完整版 | 久热成人在线视频| 欧美亚洲综合在线| 国内精品模特av私拍在线观看| 久久久久久高潮国产精品视| 久久国产精品毛片| 亚洲动漫精品| 亚洲精品日韩精品| 国产精品va| 久久久久高清| 欧美+亚洲+精品+三区| 午夜欧美大片免费观看| 国产一区二区三区日韩| 国产精品毛片a∨一区二区三区|国 | 免费亚洲电影在线| 免费在线观看精品| 亚洲永久免费视频| 久久久久国产一区二区三区| 亚洲国产经典视频| 日韩一区二区精品| 国产亚洲精品资源在线26u| 牛夜精品久久久久久久99黑人| 欧美精品免费视频| 性欧美1819性猛交| 美女999久久久精品视频| 中日韩美女免费视频网址在线观看| 先锋影音网一区二区| 最新亚洲电影| 亚洲欧美日韩中文播放| 91久久久久久| 欧美尤物一区| 亚洲一区二区在线看| 久久一区亚洲| 久久国产精品黑丝| 欧美日韩三级电影在线| 久久亚洲综合色一区二区三区| 欧美日韩一区二区三区在线 | 玖玖视频精品| 国产精品入口麻豆原神| 欧美激情精品久久久久久蜜臀| 国产精品黄色| 亚洲精品国产精品国自产在线 | 久久精彩免费视频| 一区二区三欧美| 免费欧美在线视频| 久久亚洲色图| 国产伦精品一区二区三区| 亚洲精品一区二| 最新69国产成人精品视频免费| 午夜精品久久久久久| 国产精品99久久久久久宅男| 老司机免费视频一区二区| 久久高清福利视频| 国产欧美日韩一区| 亚洲一区二区三区涩| 亚洲午夜视频在线观看| 欧美精品一区二区三区蜜臀| 欧美高清你懂得| 亚洲成人在线视频播放| 久久久久久久久岛国免费| 久久青草久久| 国产手机视频一区二区| 亚洲欧美日韩国产| 久久国产视频网| 国产一区视频网站| 久久精品国产第一区二区三区| 久久久www成人免费精品| 国产女主播视频一区二区| 午夜精品一区二区三区四区| 欧美一级免费视频| 国产婷婷成人久久av免费高清 | 欧美大片国产精品| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲经典一区| 亚洲精品视频一区| 欧美片在线播放| 亚洲免费av片| 亚洲制服丝袜在线| 国产精品影片在线观看| 欧美一区二区三区免费观看视频| 久久久久国产精品www| 亚洲国产精品99久久久久久久久| 欧美a级片网站| 99国产精品自拍| 午夜在线a亚洲v天堂网2018| 国产欧美日韩亚洲精品| 久热精品视频在线免费观看| 亚洲国产欧美在线| 亚洲欧美成人精品| 一区二区三区在线免费播放| 欧美高清视频一区二区| 亚洲欧美电影院| 欧美xart系列高清| 中文一区二区在线观看| 国产日韩欧美一区二区三区在线观看 | 麻豆视频一区二区| 日韩视频中文字幕| 国产欧美日韩免费| 欧美国产视频在线| 午夜宅男欧美| 亚洲精品国久久99热| 欧美一区二区成人6969| 亚洲激情成人| 国产日产高清欧美一区二区三区| 美女主播视频一区| 一本在线高清不卡dvd| 国产农村妇女精品一二区| 亚洲尤物精选| 亚洲第一色在线| 久久国产精品黑丝| 一区二区久久久久久| 黄色一区二区在线| 国产精品国产三级国产普通话三级 | 久久久久久噜噜噜久久久精品| 91久久精品国产| 久久久久一区二区三区| 亚洲性线免费观看视频成熟| 黄色影院成人| 国产精品色一区二区三区| 欧美乱大交xxxxx| 久久综合精品国产一区二区三区| 亚洲午夜影视影院在线观看| 亚洲欧洲一区二区三区在线观看|