• <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>

            無我

            讓內心永遠燃燒著偉大的光明的精神之火!
            靈活的思考,嚴謹的實現
            豪邁的氣魄、頑強的意志和周全的思考

            從一只貓開始學習linux指令

            一花一世界,一葉一菩提。我們就從一只貓開始學習linux指令吧。
            貓?cat!不過此貓并非真正的貓的意思。他是Linux Cat,它是 concatenate(連鎖) 的簡寫,意思是合并文件。

            Linux Cat使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
            Linux Cat說明:把檔案串連接后傳到基本輸出(螢幕或加 > fileName 到另一個檔案)
            參數:
            -n 或 --number 由 1 開始對所有輸出的行數編號
            -b 或 --number-nonblank 和 -n 相似,只不過對于空白行不編號
            -s 或 --squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行
            -v 或 --show-nonprinting

            cat主要有三大功能:
            1.一次顯示整個文件。$ cat   filename
            2.從鍵盤創建一個文件。$ cat  >  filename 
            3.將幾個文件合并為一個文件。 $cat   file1   file2  > newfile

            好的。來實戰一下,比如以哈佛校訓中英文文件為例。(哈佛校訓在這)壓縮包里面有兩個文件:hafo.txt和 哈佛大學校訓.txt ,分別是校訓的英文版和中文版。于是我們把他解壓到一個目錄。現在想在終端中瀏覽文件。
            $ cat hafo.txt
            $ cat 哈佛大學校訓.txt
            OK,so easy!不過我希望把兩個文件合并成一個文件,這樣就可以結合中英文對照看了,怎么辦呢?
            $ cat hafo.txt 哈佛大學校訓.txt > hafo
            $ cat hafo
            恩,it is easy too!

            不過,現在somebody希望在文字前面都有行號。(還當代碼看呢?)所以需要把兩者合并成一個有行號的文件,不過就這點小需求,我們還是能很容易滿足他的。
            $ cat -b hafo.txt 哈佛大學校訓.txt > hafo
            $ cat hafo
            這樣可以看到hafo文件是已經包含行號了。

            恩。一切都很順利,但是“世間本無事,庸人自擾之”。所以為了找點事做,庸人Yong出場了。
            故事是這樣的:Yong以前有文件hafo.txt,然后他賣弄才華給文件標出行號弄成了一個新文件hafo.你知道其實這是很簡單的事情了
            $ cat -b hafo.txt > hafo
            大功告成!Yong認為自己真應該去念哈佛了!現在hafo.txt就多余了,Yong果斷的刪掉了這個文件來體現自己的魄力!
            但是事實上這家伙E文實在so pool,所以他終于找來了一份中文的《哈佛大學校訓.txt》。好了,他很開心,現在他想也把這份中文的也接到hafo文件后,以便對照中英文看,當然同樣的他要求有同樣的行號,怎么辦呢?那有什么難的!Yong馬上敲出如下指令:
            $ cat -b 哈佛大學校訓.txt >> hafo
            任務完成了嗎?好像完成了。不過當他敲出如下
            $ cat hafo
            之后,發現地球好像沒有按他的思維轉!是的,有一點小異常:因為中文校訓部分固然已經編號,但是卻并沒有接著前面的編號,而是自立爐灶從1開始編號!這個不行,沒有符合我的需求。畢竟我要行號的目的是一眼要能看出來這個文件一共有多少行的。。。

            怎么辦呢?現在最原始的那一招已經不能用了,因為hafo.txt已經被刪除了。手頭上只有《hafo》和《哈佛大學校訓.txt》了。Yong真是悔恨呀!沖動是魔鬼呀!不然現在只要一句
            $ cat -b hafo.txt 哈佛大學校訓.txt > hafo
            就一起萬事大吉了!但是不行了,人,必須要為自己所做的一切負責!如果做了錯事,就必然要付出代價。

            好了,Yong的故事到此結束了。但是本文還沒結束,因為我們與Yong這種庸人是完全不同的,所以下面就是解決這個問題的辦法。
            針對這個問題,我們的一個考慮是可以有hafo盡量反原成hafo.txt的樣子,即是去掉現有的行號,然后在將反原的文件采用已知的辦法來生成新的文件。但是怎么去掉行號呢?
            這里就要提到正則表達式了,關于正則表達式語法其實很簡單,只是這個東西最關鍵的是必須經常寫才能記住才能掌握。如果不太熟悉這些,網上介紹還是很多的,可以參考這個朋友的總結:http://hi.baidu.com/ismayday/blog/item/7f5b86942741d11dd21b708f.html。
            好了,現在對已有的hafo文件,我們發現他的特點是
            [幾個空格]行號[一個tab]正文
            所以我們只要把這正文前面的東西替換為空就行了。確定正文前的內容:'^[ \t]*\d*\t'

            現在要做的工作就是從hafo文件反原成之前沒有添加行號的版本,我們可以命名為noline
            $ cat hafo | perl -pi -e 's|^[ \t]*\d*\t||g' >> noline
            $ cat noline
            看看,是不是回到之前的樣子了!恩,應該是沒有錯的!看來,世界還是很美好的!

            好了,剩下的就規約為我們已知的方法了:
            $ cat -b noline 哈佛大學校訓.txt > hafo
            $ cat hafo

            好了!貓的問題就介紹到這里,本文中由貓引起的 正則表達式 和 perl功能沒有展開講,到了以后具體的主題再講。

            posted on 2011-08-02 18:14 Tim 閱讀(2377) 評論(0)  編輯 收藏 引用 所屬分類: linux學習

            <2011年3月>
            272812345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統計

            公告

            本博客原創文章,歡迎轉載和交流。不過請注明以下信息:
            作者:TimWu
            郵箱:timfly@yeah.net
            來源:www.shnenglu.com/Tim
            感謝您對我的支持!

            留言簿(9)

            隨筆分類(173)

            IT

            Life

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            精品国产乱码久久久久久郑州公司 | 久久久久国产| 欧美麻豆久久久久久中文| 国产精品久久久久蜜芽| 久久99精品久久久久久久不卡 | 精品久久久中文字幕人妻| 久久综合国产乱子伦精品免费| 国产午夜精品久久久久九九电影| A级毛片无码久久精品免费| 97久久超碰国产精品旧版| 一本大道久久东京热无码AV| 亚洲精品乱码久久久久久蜜桃图片| 久久精品国产亚洲精品2020| 久久久久一本毛久久久| 亚洲AV日韩精品久久久久| 久久国产成人精品国产成人亚洲| 国产偷久久久精品专区| 久久人人爽人人精品视频| 国产韩国精品一区二区三区久久| 尹人香蕉久久99天天拍| 国内精品久久久久国产盗摄| 99久久国产热无码精品免费| 久久久无码精品亚洲日韩蜜臀浪潮 | 久久久久久青草大香综合精品| 久久综合精品国产二区无码| 亚洲欧洲中文日韩久久AV乱码| 国产99久久久国产精品~~牛| 久久精品国产亚洲精品2020| 久久久亚洲欧洲日产国码是AV| 久久亚洲精品无码观看不卡| 一本一本久久aa综合精品| 久久综合国产乱子伦精品免费| 久久一本综合| 亚洲色欲久久久综合网| 久久99精品久久久久久9蜜桃 | 99久久精品无码一区二区毛片| 99久久99这里只有免费费精品 | 中文字幕热久久久久久久| 亚洲第一永久AV网站久久精品男人的天堂AV | 亚洲日本va中文字幕久久| 精品综合久久久久久98|