Linux 入門記錄:十七、Linux 命令列文本/檔案處理工具,linux檔案處理

來源:互聯網
上載者:User

Linux 入門記錄:十七、Linux 命令列文本/檔案處理工具,linux檔案處理
一、檔案瀏覽

cat      查看檔案內容more     以翻頁形式查看檔案內容(只能向下翻頁)less     以翻頁形式查看檔案內容(可以上下翻頁)head     查看檔案的頭幾行(預設10行)tail     查看檔案的尾幾行(預設10行)

  

二、正則匹配列印行

命令 grep 用來全域匹配Regex並列印所在行:

grep 'mingc' /etc/passwd        在該檔案中匹配mingc的使用者資訊並列印所在行find / -user mingc | grep ".*\.png$"  尋找mingc的所有png檔案(管道操作)

常用參數:

-i       搜尋時忽略大小寫-n       顯示結果所在行數-v       輸出不匹配該正則的行(類似於一個取反操作)-An      在輸出的時候包含結果所在行之後的指定n行-Bn      在輸出的時候包含結果所在行之前的指定n行

  

三、文本切割列印欄位

命令 cut 常用來切割文本行、列印某些欄位:

cut -d:fl /etc/passwd    列印passwd檔案中冒號分割的第1個欄位(使用者名稱)(列出來多行的使用者名稱)grep mingc /etc/passwd | cut -d: -f3   列印mingc的使用者資訊匯總冒號分割的第3個欄位(uid)

常用參數:

-d       指定分割字元(預設Tab)-f       顯示特定序號的欄位(從1開始)-c       顯示特定範圍字元(從第幾個到第幾個)

樣本:

grep mingc /etc/passwd | cut -d: -f3     列印mingc的使用者資訊中冒號分割的第3個欄位(uid)grep mingc /etc/passwd | cut -d: -f6,7   列印mingc的使用者主目錄和登入Shellgrep mingc /etc/passwd | cut -c1-5       列印mingc的使用者資訊中第1~5個字元grep mingc /etc/passwd | cut -c1-        列印mingc的使用者資訊中第1個字元之後的所有字元grep mingc /etc/passwd | cut -c-5        列印mingc的使用者資訊中第5個字元之前的所有字元

  

四、文本統計

命令 wc 用於統計檔案的行數、單詞數、字元數等:

wc test.md

不帶參數時預設輸出一行,欄位格式為:

行數 單詞數 字元數 檔案名稱

常用參數:

-l       只統計行數-w       只統計單詞數-c       只統計位元組數-m       只統計字元數

  

五、文本排序

命令 sort 用於對檔案內容進行排序(也可以對STDIN進行排序):

sort filename

常用參數:

-r        逆向(倒序)排序-n        基於數字排序-f        忽略大小寫-u        去重複(剔除重複行)-t<分割符> 指定分隔字元(一般配合-k參數使用,單純分割毫無意義)-k n      當指定分割符時,按照第n個欄位進行排序(序號n從1開始)

 -r、-n、-t、-k 參數可以配合使用:

中,把 test.md 檔案內容的每行按照冒號分割、基於數字對第3個欄位進行逆向排序。

 

六、剔除重複行

命令 sort -u 可以剔除檔案內容重複行,但副作用是進行了排序。

命令 uniq 可以剔除檔案內容(相鄰的)重複行:

 

七、文本比較

命令 diff 用來比較兩個檔案的區別:

diff test1.md test2.md

常用參數:

-i       忽略大小寫-b       忽略空白字元-u       統一顯示比較資訊(一般用來產生patch檔案)

樣本:

diff -u old.md new.md > update.patch   把檔案的更新資訊產生到補丁檔案

 

八、拼字檢查

命令 aspell 用來顯示檢查英文拼字:

aspell check filenameaspell list < filename

(CentOS 6.9 64位系統裡似乎沒有這個命令,也不常用,不詳述)

 

九、字元轉換

命令 tr 用於從標準輸入對字元進行轉換處理。如果處理來自檔案的輸入,需要重新導向。

刪除關鍵字:

tr -d 'keyword' < filename

轉換大小寫:

tr 'a-z' 'A-Z' < filename

 

十、流式編輯——搜尋替換

sed 命令是一種可以配合Regex使用的流式編輯工具。處理檔案流時,把當前處理的行儲存在臨時緩衝區,稱“模式空間”(pattern space),然後處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到檔案末尾。檔案內容並沒有發生改變,除非使用重新導向儲存輸出。sed 命令主要用來自動編輯一個或多個檔案、簡化對檔案的反覆操作、編寫轉換程式等。

文法:

sed [options] 'command' file(s)sed [options] -f scriptfile file(s)

常用參數 options:

-e<script>   指定一個script來處理文本-f<script>   指定一個script來處理文本-n           僅顯示處理後的結果

常用命令 command:

d    刪除行D    刪除第一行s    替換指定字元h    拷貝內容到緩衝區H    追加內容到緩衝區g    擷取緩衝區的內容,替換當前文本G    擷取緩衝區的內容,追加到當前文本後面p    列印行P    列印第一行q    退出sed

樣本:

sed 's/linux/unix/g' filename      s表示搜尋替換,linux替換為unix,g表示全域替換,filename目標檔案sed 'l,50s/linux/unix/g' filename  1到50行進行全域替換sed -e 's/linux/unix/g' -e 's/ming/mingc/g' filename  -e參數替換多個sed -f script filename             指定一個script來處理檔案

 

相關連結:sed 命令 - Linux 命令大全

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.