91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

文本搜索利器:grep egrep fgrep

發布時間:2020-07-31 05:51:08 來源:網絡 閱讀:623 作者:tianchaoinn 欄目:關系型數據庫

    grep名稱來自于g/re/p(globally search a regular expression and print,以正規表示法進行全域查找以及打印),是一個最初用于Unix操作系統的命令行工具。在給出文件列表或標準輸入后,grep會對匹配一個或多個正則表達式的文本進行搜索,并只輸出匹配(或者不匹配)的行或文本。

命令名稱:grep, egrep, fgrep
命令作用:print lines matching a pattern
命令用法:grep [OPTIONS] PATTERN [FILE...]
          grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
參數選項:-v  反向選取
          -o  僅顯示匹配的字符串,而非字符串所在的行
          -i  忽略字符串大小寫
          -E  支持只用擴展正則表達式
          -A n  顯示匹配到字符串之后的n行
          -B n  顯示匹配到字符串之前的n行
          -C n  顯示匹配到字符串前后的n行
          --color  高亮顯示匹配到的字符串


常見字符集:

[:space:]所以空白字符
[:punct:]所以標點符號
[:lower:]所有小寫字母
[:upper:]所以大寫字母
[:digit:]所有數字
[:alnum:]所有大小寫字母和數字
[:alpha:]所有大小寫字母


文件名通配:


*任意長度的任意字符
?匹配任意單個字符
[]匹配指定范圍內的任意單個字符
[^]匹配指定范圍以外的任意單個字符


基本正則表達式:

字符匹配.匹配任意單個字符
[]匹配指定范圍內的任意單個字符
[^]匹配指定范圍外的任意單個字符
次數匹配*前面的字符可以出現任意次
\?前面的字符出現0次或者1次
\{m\}前面的字符出現m次
\{m,n\}前面的字符出現n次~m次
\{m,\}前面的字符至少出現m次
\{0,n\}前面的字符至多出現n次
.*任意長度的任意字符
位置錨定^行首錨定,寫在模式的最左側
$行尾錨定,寫在模式的最右側
^$匹配空行
\<詞首錨定,出現于單詞左側
\>詞尾錨定,出現于單詞右側
分組\(\)匹配一個分組
\1引用第1個括號所匹配到的內容,而非模式本身
\2

引用第2個括號所匹配到的內容,而非模式本


擴展正則表達式:

字符匹配.匹配任意單個字符
[]匹配指定范圍內的任意單個字符
[^]匹配指定范圍外的任意單個字符
次數匹配*前面的字符可以出現任意次
?前面的字符出現0次或者1次
+前面的字符至少出現1次
{m}前面的字符出現m次
{m,n}前面的字符出現n次~m次
{m,}前面的字符至少出現m次
{0,n}前面的字符至多出現n次
錨定^行首錨定,寫在模式的最左側
$行尾錨定,寫在模式的最右側
\<,\b詞首錨定,出現于單詞左側
\>,\b詞尾錨定,出現于單詞右側
^$匹配空行
分組()匹配一個分組
\1引用第1個括號所匹配到的內容,而非模式本身


grep練習:

1、顯示/proc/meminfo文件中以大寫或小寫S開頭的行;

[root@DB2 ~]# grep -i '^s' /proc/meminfo 

[root@DB2 ~]# grep -E '^(S|s)' /proc/meminfo

[root@DB2 ~]# grep '^[S|s]' /proc/meminfo


2、顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶;

[root@DB2 ~]# grep -v "/sbin/nologin$" /etc/passwd | cut -d: -f1


3、顯示/etc/passwd文件中其默認shell為/bin/bash并且ID號最大的用戶;

[root@DB2 ~]# grep '/bin/bash' /etc/passwd | sort -t: -k3 -n | tail -1 | cut -d: -f1


4、找出/etc/passwd文件中的一位數或兩位數;

[root@DB2 ~]# grep '\<[0-9][0-9]\?\>' /etc/passwd

[root@DB2 ~]# grep '\<[0-9][0-9]\{0,1\}\>' /etc/passwd


5、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;

[root@DB2 ~]# grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf


6、顯示/etc/rc.d/rc.sysinit文件中,以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;

[root@DB2 ~]# grep --color '^#[[:space:]]\{1,\}[^[:space:]]\{1,\}' /etc/rc.d/rc.sysinit


7、找出netstat -tan命令執行結果中以'LISTEN'結尾的行;

[root@DB2 ~]# netstat -tan | grep --color 'LISTEN[[:space:]]*$'


8、添加用戶bash, testbash, basher, nologin(SHELL為/sbin/nologin),而找出當前系統上其用戶名和默認shell相同的用戶;

[root@DB2 ~]# grep --color '^\([[:alnum:]]\{1,\}\):.*\1$' /etc/passwd


9、擴展題:新建一個文本文件,假設有如下內容:

He like his lover.

He love his lover.

He like his liker.

He love his liker.

找出其中最后一個單詞是由此前某單詞加r構成的行。

cat <<EOF> 2.txt

He like his lover.

He love his lover.

He like his liker.

He love his liker.

EOF

[root@DB2 ~]# grep --color '\(l..e\).*\1r' 2.txt


文本搜索利器:grep egrep fgrep


練習:使用擴展的正則表達式

10、顯示當前系統上root、bin或halt用戶的默認shell;

[root@Oracle ~]# grep -E "^(root|bin|halt):" /etc/passwd | cut -d: -f7文本搜索利器:grep egrep fgrep


11、找出/etc/rc.d/init.d/functions文件中某單詞后跟一組小括號“()”行;

[root@Oracle ~]# grep -E -o "\<[[:alnum:]]+\>\(\)" /etc/rc.d/init.d/functions

文本搜索利器:grep egrep fgrep


12、使用echo命令輸出一個路徑,而后使用grep取出其基名;

echo "/etc/sysconfig/" | grep -o -E "[[:alnum:]]+/?"

[root@Oracle ~]# echo "/etc/sysconfig/" | grep -o -E "[^/]+/?$" | cut -d/ -f1

sysconfig

[root@Oracle ~]# echo "/etc/sysconfig/" | grep -o -E "[[:alnum:]]+/?"

etc/sysconfig/


13、找出ifconfig命令結果中的1-255之間的數字;

[root@Oracle ~]# ifconfig | grep -o -E --color "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"

文本搜索利器:grep egrep fgrep



14、挑戰題:寫一個模式,能匹配合理的ipv4地址;

cat << EOF > 5.txt 

192.168.1.1

127.0.0.1

10.127.5.1

202.96.128.166

202.96.128.255

255.255.255.255

239.0.1.25

240.1.1.1

0.0.0.1

EOF

[root@Oracle ~]# grep -o -E --color "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-3][0-9])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>" 5.txt 

文本搜索利器:grep egrep fgrep

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天峨县| 观塘区| 晋州市| 合水县| 巩义市| 咸宁市| 永嘉县| 克什克腾旗| 开化县| 阜平县| 名山县| 惠安县| 娱乐| 黄梅县| 汉中市| 中牟县| 沙坪坝区| 读书| 荆州市| 桂林市| 永德县| 娄烦县| 嘉祥县| 邹城市| 陵水| 吉木乃县| 平乡县| 黑山县| 扬中市| 屯留县| 昭苏县| 刚察县| 贵港市| 休宁县| 宁海县| 甘德县| 武宣县| 五台县| 武隆县| 高邑县| 于都县|