亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux中常用命令之一——文本處理

系統 1998 0

Linux 中常用的文本(行)處理命令




0、正則表達式(regular expression)

元字符(如下圖)是正則表達式中含有的字符,在正則表達式中可以在字符串中使用元字符以匹配字符串的各種可能的情況。

Linux中常用命令之一——文本處理

注意:

(1) 在“[ ]”中還可以使用“-”來表示某一范圍。例如“[a-z0-9]”匹配任意的小寫字母或者數字,“[^A-Z]”表示非大寫字母,“[0-9]{8}”表示任意一個8位數字。

(2) 元字符還可以配合使用:
“.*”可以匹配任意個字符,如“r.*d”會匹配“rd”、“red”、“read”。
“.+”可以匹配任意的一個或者多個字符,如“r.+d”會匹配“red”、“read”,但不會匹配“rd”。
“.?”可以匹配任意的零個或一個字符,如“r.?d”會匹配“rd”、“red”,但不會匹配“read”。
“^$”匹配空白行。

(3) 在[ ]中還可以使用一些特殊匹配模式,如下表:

Linux中常用命令之一——文本處理

以“\”開頭得元字符

Linux中常用命令之一——文本處理


1、grep命令

命令說明:按行處理,輸出文件中包含搜索字符串的所有行。
格式:grep [-acinv] ‘搜索字符串’ filename

參數說明:

-a:在二進制文件中,以文本文件的方式搜索數據;

-c:計算找到“搜索字符串”的次數;

-i:忽略大小寫;

-n:輸出行號;

-v:反向選擇;

-E:擴展正則表達式

例子:在文件a.txt中搜索包含字符串good或glad的行:
grep -E 'g(oo|la)d' a.txt

找到以字母a結尾的單詞:

grep -E 'a[[:blank]]' a.txt

grep -E 'a\\b' a.txt



2、find命令

命令說明: 查找符合條件的文件
格式:find [path] [options][tests] [actions]
參數說明:


3、cut命令

命令說明:按行處理,將一行消息的某段切出來。
格式:cut -d '分割字符' -f fields
cut -c m-n
例如: echo $PATH | cut -d ':' -f 3,5 ,取出環境變量PATH中的第3個和第5個路徑。
echo $PATH | cut -d ':' -f 3-5 ,取出環境變量PATH中的第3個到第5個路徑。
export | cut -c 12- , 將export中的每行的前面11個字符刪除留,保留從第12個字符開始的所有字符。


4、awk工具

命令說明: 將一行消息分成數個段來處理,適合處理小型的數據。
格式:awk '條件類型 {動作}' file
awk的內置變量:
$n:該行的第n個字段;
NF:每一行擁有的字段總數;
NR:當前行的行號;
FS:分隔符,默認為空格鍵;

例如: cat /etc/passwd | awk 'BEGIN {FS=":"} $S3<10 {print $1 "\t" $3}' ,打印passwd文件第三欄小于10的行的第1、3欄。


5、sed工具

命令說明: 分析STDIN的數據,將數據處理后,輸出到STDOUT。
格式:sed [-nefr] 動作
參數說明:
-n:安靜模式,僅顯示經過sed特殊處理的行;
-e:直接在命令行模式進行sed的操作編輯;
-f file:將sed操作寫在一個文件中;
-r:支持擴展正則表達式語法;
動作說明:[n1[, n2]] functions
其中,n1和n2代表“選擇進行操作的行數”,function有下面這些操作:

a:新增, 例如: nl /etc/passwd | sed '2a Hello World' ,在 /etc/passwd第2行下面新增一行,寫入"Hello World"。
i:插入,例如: nl /etc/passwd | sed '2i Hello World' ,在 /etc/passwd第2行上面新增一行,寫入"Hello World"

c :替換,例如: nl /etc/passwd | sed '2,5c Hello World' ,將 /etc/passwd第2至5行的內容替換為“Hello Wolrd”。
d :刪除,例如: nl /etc/passwd | sed '2,5d' ,刪除/etc/passwd中的第2至5行。
p :打印,例如: nl -n /etc/passwd | sed '2,5p' ,僅顯示2到5行,注意,如果不加-n,2到5行將重復輸出。
s :搜索,例如: nl /etc/passwd | sed '1,20s/old/new/g' ,將第1~20行中出現的所有字符串old替換為new。

6、sort命令
命令說明:將文本文件的內容按行排序。
格式:sort [-fbMnrtuk] [file or stdin]
參數說明:
-f:忽略大小寫;
-b :忽略最前面的空格;
-u :即uniq,重復行僅出現一次;
-M :以月份的名字來排序;
-n :使用“純數字”來排序;
-r :反向排序;
-t :分隔符,默認為tab鍵;
-k :按指定字段排序;例如: cat /etc/passwd | sort -t ':' -k 3 ,對文件/etc/passwd以第三欄排序。

7、uniq命令
命令說明:如果排序完成了,將重復的行僅顯示一次。注意,若文件未排序,該命令失效。
格式:uniq [-ic]
參數說明:
-i:忽略大小寫;
-c:統計每行重復的次數;

8、wc命令

命令說明:統計文本文件中有多少字,多少行,多少字符。
格式:wc [-lwm]
參數說明:
-l:僅顯示行數;
-w:僅顯示字數(英文單詞個數);
-m:字符數;

9、tee命令

命令說明:雙向重導向,從標準輸入讀取數據,輸出到屏幕上,同時保存成文件。
格式:tee [-a] file
參數說明:
-a:以累加的方式,將數據加入到file中。
例如: ls -al /home | tee ~/myfile | more ,將ls命令的數據存一份到myfile中,同時屏幕也有輸出數據。

10、tr命令

命令說明:單個字符的處理工具,可以用于刪除字符、替換字符等基本功能。更復雜的字符串處理工具通常使用sed。
格式:tr [-ds] SET1....
參數說明:
-d:刪除,例如: cat file | tr -d '\r' ,相當于dos2unix命令所起的作用。
-s:替換字符,例如: cat file | tr -s [0-9] ,如果某個數字連續出現,僅保留第一個。
cat file | tr [a-z] [A-Z] ,將file中的小寫字符全部改為大寫。

11、col命令

命令說明:格式化顯示列。
格式:col [-x]
參數說明:

-x:將tab鍵轉換成對等的空格鍵;
例如: cat -A /etc/man.config | col -x | cat -A ,使用cat -A,tab鍵會以^I顯示,經過col -x處理,tab替換為空格。


12、expand命令

命令說明:將tab鍵轉換成空格鍵。
格式:expand [-t] file

參數說明:
-t n:后面可以接一個數字n,一個tab鍵替換為n個空格鍵,默認值為8。

13、join命令

命令說明:處理兩個文件中有相同數據的行,將它們加在一起。
格式:join [-ti12] file1 file2

參數說明:
-i :忽略大小寫;
-t:分隔符,默認為空格符;
-1 m :指定file1用來比較的字段m,默認值為1;
-2 n :指定file2用來比較的字段n,默認值為1;

14、paste命令
命令說明:比較兩個文件的數據關聯性,直接將“兩行貼在一起”,中間以tab鍵隔開。
格式:paste [-d] file1 file2
參數說明:

-d:后面接分隔符,默認為tab鍵。


15、diff命令

命令說明:以 “行” 為單位進行文件比較,一般用在ASCII純文本文件。
格式:diff [-bBi] file1 file2
參數:
-b:忽略一行中有多個空白的差異;
-B:忽略空白行的不同;
-i:忽略大小寫;


16、cmp命令

命令說明: 以“位”為單位進行文件比較,可以比較二進制文件。
格式:cmp [-s] file1 file2
參數:
-s:將所有不同點的位都列出來,默認僅輸出第一個發現的不同點;


17、patch命令

命令說明:diff old new > patch_file命令可以找出new文件與old文件不同的地方,然后用patch命令給old文件打上補丁,即與new文件相同了。
格式:patch -pN < patch_file
參數:-pN表示取消N層目錄。



18、split命令

命令說明:將一個大文件拆分為幾個小文件。
格式:split [-bl] fle
參數說明:
-b:拆分的文件大小,可加單位,如b, k, m等;
-l:按行數進行拆分;
例如: split -b 512k bigfile smallfile ,將文件bigfile按512K拆分,拆分后的文件依次為:smallfileaa、smallfileab等。
split -l 10 bigfile smallfile ,將文件bigfile中的每10行拆分成一個小文件。

19、xargs命令






















Linux中常用命令之一——文本處理


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 麻豆精品久久久 | 五月天在线免费视频 | 四虎最新免费网址 | 在线看污网站 | 成 人 黄 色 | 男人草女人视频 | 免费黄色的视频 | 一级毛片老太婆交性欧美 | 六月丁香色婷婷 | 日韩精品免费一区二区三区 | 国内精品综合九九久久精品 | 色啦啦影院 | 妞干网这里只有精品 | 最近中文字幕精彩视频 | 中文字幕国产视频 | 亚洲视频在线不卡 | 成人久久久 | 免费观看大片毛片 | 日本午夜www高清视频 | 日韩毛片在线看 | 国产乱码精品一区二区三区四川 | 久久精品国产2020观看福利色 | 久久伊人中文字幕 | 999久久狠狠免费精品 | 免费观看性欧美一级 | 韩国一级特黄毛片大 | 免费播放欧美毛片欧美aaaaa | 91精品乱码一区二区三区 | 国产亚洲精品久久久久久小说 | 日本在线观看一级高清片 | 国产精品日韩在线观看 | 夜夜爽日日澡人人添 | 国产精品亚洲国产 | 天天操天天擦 | 国产香蕉久久 | 久久久亚洲国产精品主播 | 天天干狠狠 | 久操视频网站 | 亚洲图片欧美日韩 | 99精品小视频 | 国产成人无精品久久久 |