歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

linux常用文字處理命令總結

linux grep命令

作用
Linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。

主要參數

-n:顯示匹配行及 行號。

-v:顯示不包含匹配文本的所有行。

-I:不區分大 小寫(只適用於單字符)。

-l:查詢多文件時只輸出包含匹配字符的文件名。

-e:使用擴展的正則表達式

-w: 只匹配整個單詞,而不是字符串的一部分 (即由連續的字符,數字和下劃線構成的整體)

Linux sed命令

作用

Sed命令主要用於對整行進行處理,對列處理可使用下面介紹的awk命令

用法 sed 選項 動作 文件

常用選項:

-n∶使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會被列出到螢幕上。但如果加上 -n 參數後,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。
-f∶直接將 sed 的動作寫在一個檔案內, -f filename 則可以執行 filename 內的sed 動作;
-i∶直接修改讀取的檔案內容,而不是由螢幕輸出。

常用動作

a ∶新增, a 的後面可以接字串,而這些字串會在新的一行出現(目前的下一行),如果要新增多行,需用\換行
c ∶取代, c 的後面可以接字串,這些字串可以取代 n1,n2 之間的行!如果字符串要換行,需要用\配合
d ∶刪除,因為是刪除啊,所以 d 後面通常不接任何咚咚;
i ∶插入, i 的後面可以接字串,而這些字串會在新的一行出現(目前的上一行);如果要插入多行,需用\換行
p ∶列印,亦即將某個選擇的資料印出。通常 p 會與參數 sed -n 一起運作~
s ∶取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 s/old/new/g 就是啦!

Linux awk命令

awk可以獨立的作為一門編程語言,這裡只介紹其簡單的一部分

awk一般配合print和printf來使用

如:

顯示/etc/passwd中的 用戶名,用戶id和組id,前面加上行號(通過cat -n) -F用來說明劃分列的分隔符,$1,$3,$4分別指第1,3,4行

cat -n /etc/passwd | awk -F “:” '{print $1 “\t” $3 “\t” $4}'

 

第一行顯示username userid groupid然後顯示和上個例子一樣的內容(行號是通過awk中的NR顯示的)

cat /etc/passwd | awk 'BEGIN {FS=”:”; printf “%d\t%10s\t%10s\t%10s\n”,NR,”username”,”userid”,”groupid”}\

{printf “%10s\t%10s\t%10s\n”,$1,$3,$4}\

END {printf “finish\n”}'

 

顯示硬鏈接數目大於5的文件,$0代表整行

ll | awk '$2>5 {print $0}'

原始文件:

score:

|Math|English|C++|OS|SE|

|95 |89 |92 |98 |99|

|66 |78 |82 |81 |90|

|79 |65 |77 |82 |35|

命令:

cat score | awk 'BEGIN {FS="|"; print "MY Score List"}\

NR==1 {print $0 "Sum" FS "Average" FS}\

NR>1 {sum=$1+$2+$3+$4+$5;aver=sum/5;print $0 sum FS aver FS}\

END {print "Finish"}'

 

輸出:

MY Score List

|Math|English|C++|OS|SE|Sum|Average|

|95 |89 |92 |98|99|374|74.8|

|66 |78 |82 |81|90|307|61.4|

|79 |65 |77 |82|35|303|60.6|

Finish

Copyright © Linux教程網 All Rights Reserved