Java開發人員必須掌握的Linux命令(三)

做一個積極的人

編碼、改bug、提升自己

我有一個樂園,面向編程,春暖花開!

學習應該是快樂的,在這個樂園中我努力讓自己能用簡潔易懂(搞笑有趣)的表達來講解知識或者技術,讓學習之旅充滿樂趣,這就是寫博文的初心。

前面寫了兩篇Linux的命令介紹,

前段時間看了哈利波特的一些電影,突然想到Linux的命令就像哈利波特電影中的魔法一樣,都是有魔力的。那麼學會Linux的這些命令,我們也就可以像哈利波特他們一樣擁有魔法,魔法的世界還是挺有趣的,裡面也充滿了歡樂。本篇再講三個Linux的命令,這三個命令是Linux三劍客(grep、sed、awk),也是Linux中三個比較重要的命令,學會了這三個命令,那麼我們也用了三個比較厲害的魔法。

旁白開篇

有一個魔法學校裡面有三個魔法。這三個魔法一直以來被認為是魔法學校裡面比較重要的三個魔法,也被稱為三劍客,讓我們來開啟這三個魔法的學習吧!

魔法地圖:

Java開發人員必須掌握的Linux命令(三)

1、文本過濾器-grep

grep命令用於查找文件裡符合條件的字符串,是一種強大的文本搜索工具,支持正則表達式或者字符及基本文本字符所編寫的過濾條件

grep指令用於查找內容包含指定的範本樣式的文件,如果發現某文件的內容符合所指定的範本樣式,預設grep指令會把含有範本樣式的那一列顯示出來。說簡單一點就是 :用戶可以指定的“模式”(選項)對目標文本進行匹配檢查 , 查看就打印匹配到的行。

注: 在grep命令中輸入字符串參數時,最好將其用雙引號括起來。調用變量時也可以使用雙引號。在調用模式匹配事,應使用單引號。

  • 常用命令格式
# grep 匹配條件 目標文件/目錄
可選參數:
-c 或 --count : 計算符合樣式的列數。
-i 或 --ignore-case : 忽略字符大小寫的差別

-l 或 --file-with-matches : 列出文件內容符合指定的樣式的文件名稱
-n 或 --line-number : 在顯示符合樣式的那一行之前,標示出該行的列數編號
-s :不顯示不存在或無匹配文本的錯誤信息。
-v 或 --revert-match : 顯示不包含匹配文本的所有行行
-r 或 --recursive : 此參數的效果和指定"-d recurse"參數相同
-E 或 --extended-regexp : 將樣式為延伸的普通表示法來使用
....
說明:在正則表達式中
^ :匹配字符串開始
$ :匹配字符串結尾
* :字符出現 [0- 任意次 ]
\?:字符出現 [0-1 次 ]
\+:字符出現 [1- 任意次 ]
  • 簡單實例
# 1、新建一個busyday busyday1 busyday2文件 
[root@localhost learn_grep]# touch busyday
[root@localhost learn_grep]# vim busyday
# 其他busyday1 busyday2類似,文件內容略
[root@localhost learn_grep]# cat busyday
abc
123abdef
789happy
hjk567
hello123
greptest
# 2、查詢 happy 所在的文件
[root@localhost learn_grep]# grep "happy" busyday*

busyday:789happy
busyday1:123happy
busyday2:456happy
# 3、統計 happy 所在的文件內容的出現的次數
[root@localhost learn_grep]# grep -c "happy" busyday*
busyday:1
busyday1:1
busyday2:1
# 4、顯示匹配happy的所有行數,都在第三行
[root@localhost learn_grep]# grep -n "happy" busyday*
busyday:3:789happy
busyday1:3:123happy
busyday2:3:456happy
# 5、顯示所有不包含happy的行
[root@localhost learn_grep]# grep -v "happy" busyday*
busyday:abc
busyday:123abdef
busyday:hjk567
busyday:hello123
busyday:greptest
busyday:
busyday1:abc
busyday1:4567abdef
busyday1:hjk321
busyday1:hello987
busyday2:abc
busyday2:9876abdef
busyday2:hjk4321
busyday2:hello0980
# 6、精確匹配,找到 123happy
[root@localhost learn_grep]# grep "123happy" busyday*
busyday1:123happy
# 7、正則匹配,找到所有123開頭的
[root@localhost learn_grep]# grep -E "^123*" busyday*
busyday:123abdef
busyday1:123happy

還有很多,自行進行魔法練習!

2、字符處理器-sed

sed命令是利用script來處理文本文件。sed可依照script的指令,來處理、編輯文本文件。能夠完美的配合正則表達式便用,功物能不同凡響。

  • 基本語法
sed [-參數] '命令' 文本
參數說明:
- -e


分享到:


相關文章: