課時20 Linux命令行文本處理工具

Linux課程學習筆記來源於網易雲課堂:Linux 入門基礎

1 文件瀏覽

cat 查看文件內容

more 以翻頁形式查看文件內容

less 以上下翻頁形式查看文件內容

head 查看文件的開始10行(或指定行數)

tail 查看文件的最後10行(或指定行數)

2 基於關鍵字搜索

grep 基於關鍵字進行文本搜索

grep 'linuxcast'/etc/passwd   // 在/etc/passwd 中搜索linuxcast項,單個單詞不需要單引號或雙引號

find / -userlinuxcast | grep Video   //在根目錄(/)下用戶linuxcast用戶的文件,將信息傳遞給grep

grep的常用參數:

-i 在搜索時忽略大小寫

-n 顯示結果所在行數,方便下次修改或查看

-v 輸出不帶關鍵字的行,進行排除輸出

-Ax (A=after)在輸出的時候包含結果所在行之後的指定行數

-Bx (B=before)在輸出的時候包含輸出結果前幾行:-B3    輸出結果前3行

3 基於列處理文本

cut -d: -f1 /etc/passwd  // 修剪指定列,顯示passwd到位第1列,指定分隔符是‘:’

grep linuxcast /etc/passwd | cut -d: -f3 //輸出 /etc/passwd中含有linuxcast的信息,指定分隔符是:,並顯示第3列

參數說明:

-d 指定分隔符(默認是TAB)

-f 指定輸出列

-c 基於字符進行切割:cut -c2-6 /etc/passwd       //

4 文本統計

wc用於統計文本信息:

-l 只統計行數

-w 只統計單詞

-c 只統計字節數

-m 只統計字符數

5 文本排序

sort命令對文本內容進行排序,僅對英文排序,默認是單詞的首字母

-r 進行倒序排序

-n 基於數字進行排序

-f 忽略大小寫

-u 刪除重複行

-t c 使用c作爲分隔符分割爲列進行排序

-k x 當進行基於指定字符分隔爲列的排序時,指定基於那個列排序

6 刪除重複行

命令sort -u 刪除重複行

unip用以刪除重複的相鄰行   cat linux | uniq

7 文本比較

diff linux linux-new  比較兩個文件的區別

常用參數:

-i  忽略大小寫

-b 忽略空格數量的改變

-u 統一顯示比較信息[一般用以生成patch文件(補丁文件)]

diff -u linux   linux-new > final.patch

8 拼寫檢查(系統沒有安裝,通過sudo yum install aspell進行安裝)

命令aspell用以顯示檢查英文拼寫

aspell check linuxcast

aspell list < linuxcast

9 處理文本內容(原文件的內容不變)

命令tr用來處理文本內容

1)刪除關鍵字:

tr -d 'apple'   < linux //以重定向的形式

2)轉換大小寫:

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

10 搜索替換

sed用以搜索並替換文本:

1)  sed ‘s/linux/unix/g’ linuxcast          //對linuxcast文件進行搜索,將其中的linux替換成unix,g的作用是如果一行中出現多個匹配項,則都進行匹匹配。如果不加g,僅替換該行的一個匹配項。

2)  通過參數-e可以進行匹配多個:sed –e ‘s/linux/unix/g’ –e ‘s/nash/nash_su/g’ linuxcast

3)  sed'1,20s/linux/unix/g'  代表只替換1到20行

4)  sed –f sededit linuxcast    //將存有替換表達式的sededit文件對linuxcast執行替換操作,例如,先將以下表達式寫成一個文件sededit,然後再調用sed –f sededit linuxcast:

s/mi/my/g

s/ore/are/g


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章