日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

关 于 正 则 表 达 式 的 类 习 题

發(fā)布時(shí)間:2023/12/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关 于 正 则 表 达 式 的 类 习 题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.?如何把?/etc/passwd?中用戶uid?大于500?的行給打印出來(lái)? 2.?awk中?NR,NF兩個(gè)變量表示什么含義?awk?-F?':'?'{print?$NR}'?/etc/passwd??會(huì)打印出什么結(jié)果出來(lái)?3.?用grep把1.txt文檔中包含'abc'或者‘123’的行過(guò)濾出來(lái),并在過(guò)濾出來(lái)的行前面加上行號(hào). 4.??grep??-v?'^$'?1.txt???這樣會(huì)過(guò)濾出哪些行?5.?'.'???'*'?和?'.*'???分別表示什么含義?'+'和'?'表示什么含義,這五個(gè)符號(hào)是否可以在grep中使用,是否可以在egrep、sed以及awk中使用? 6.?grep?里面用到一個(gè)?{}?,它用在什么情況下?7.?sed有一個(gè)選項(xiàng),可以直接更改文本文件,是哪個(gè)選項(xiàng)? 8.?sed?-i?'s/.*ie//;s/["|&].*//'?file??這條命令表示什么操作呢? 9.?如何刪除一個(gè)文檔中的所有數(shù)字或者字母?10.??截取日志1.log的第一段(以空格為分隔符),?按數(shù)字排序、然后去重,但是需要保留重復(fù)的數(shù)量如何做? 11.?使用awk過(guò)濾出1.log中第7段(空格分隔)為'200'?并且第8段為'11897'的行。12.??請(qǐng)比較這兩個(gè)命令的異同:?grep?-v?'^[0-9]'?1.txt?和?grep??'^[^0-9]'?1.txt 13.?awk中的$0表示什么?為什么以下兩條命令的$0結(jié)果不一致呢??awk?-F?':'?'{print?$0}'?1.txt??和?awk?-F?':'?'$7=1?{print?$0}'?1.txt14.?使用grep過(guò)濾某個(gè)關(guān)鍵詞時(shí),如何把包含關(guān)鍵詞的行連同上面一行打印出來(lái),那下面一行呢?同時(shí)上面和下面都打印出來(lái)呢?


1. 如何把 /etc/passwd 中用戶uid 大于500 的行給打印出來(lái)?

? ?awk -F ':' '$3 > 500' /etc/passwd


2. awk中 NR,NF兩個(gè)變量表示什么含義?awk -F ':' '{print $NR}' /etc/passwd ?會(huì)打印出什么結(jié)果出來(lái)?

? ? NR表示行數(shù),NF表示一共有多少段

? ? awk -F ':' '{print $NR}' /etc/passwd ?會(huì)依次打印對(duì)應(yīng)的行數(shù)的段,第一行打印第一段,第

? ? 二 ?行打印第二段... 到了最后就打印空行了

? ? awk -F ':' '{print $NF}' /etc/passwd 只打印最后一段


3. 用grep把1.txt文檔中包含'abc'或者‘123’的行過(guò)濾出來(lái),并在過(guò)濾出來(lái)的行前面加上行號(hào).

? ?grep -E -n 'abc|123' 1.txt


4. ?grep ?-v '^$' 1.txt ? 這樣會(huì)過(guò)濾出哪些行?

? ? 會(huì)把非空行過(guò)濾出來(lái)


5. '.' ? '*' 和 '.*' ? 分別表示什么含義?'+'和'?'表示什么含義,這五個(gè)符號(hào)是否可以在grep中使用,是否可以在egrep、sed以及awk中使用?

'.' ?表示一個(gè)任意的字符;?

'*' ?表示前面緊鄰的那個(gè)字符有零個(gè)或多個(gè),即前面緊鄰的那個(gè)字符可以不存在,也可以有多個(gè);

'.*' 表示零個(gè)或多個(gè)的任意字符,包括空行;

'+' ?表示前面緊鄰的那個(gè)字符有一個(gè)或多個(gè);

'?' ?表示前面緊鄰的那個(gè)字符有零個(gè)或一個(gè);

grep和sed可以使用'.' 、 '*' 和 '.*',但是不能使用'+'和'?' ? egrep和awk全部可以使用。


6. grep 里面用到一個(gè) {} ,它用在什么情況下?

{ },其內(nèi)部為數(shù)字,表示前面的字符要重復(fù)的次數(shù)。數(shù)字可以是單個(gè)數(shù)字{n},也可以是一個(gè)區(qū)間{n1,n2}。注意,在字符串中,{ }左右都需要加上脫意字符 ‘\’。

例如, grep ?'o\{3\}' /etc/passwd ? ? ? //輸出有3連續(xù)的'o'的行


7. sed有一個(gè)選項(xiàng),可以直接更改文本文件,是哪個(gè)選項(xiàng)?

? ? -i


8. sed -i 's/.*ie//;s/["|&].*//' file ?這條命令表示什么操作呢?

? ?該命令由;分割了兩部分,首先第一部分表示把file中出現(xiàn)的以ie結(jié)尾的字符串刪除,

? ?第二部分是把file中以"或|或&開(kāi)頭的字符串刪除


9. 如何刪除一個(gè)文檔中的所有數(shù)字或者字母?

? ?刪除所有數(shù)字: sed -i 's/[0-9]//g' file

? ?刪除所有字母: sed -i 's/[a-Z]//g' file


10. ?截取日志1.log的第一段(以空格為分隔符), 按數(shù)字排序、然后去重,但是需要保留重復(fù)的數(shù)量如何做?

? ?awk '{print $1}' 1.log |sort -n|uniq -c|sort -n


11. 使用awk過(guò)濾出1.log中第7段(空格分隔)為'200' 并且第8段為'11897'的行。

? ?awk '$7 == "200" && $8 == "11897"' 1.log


12. ?請(qǐng)比較這兩個(gè)命令的異同: grep -v '^[0-9]' 1.txt 和 grep ?'^[^0-9]' 1.txt

? ?grep -v '^[0-9]' 1.txt ? ? ?//輸出文件中不以數(shù)字開(kāi)頭的行,但輸出空行

? ?grep ?'^[^0-9]' 1.txt ? ? ? //輸出文件中不以數(shù)字開(kāi)頭的行,但不輸出空行


13. awk中的$0表示什么?為什么以下兩條命令的$0結(jié)果不一致呢? awk -F ':' '{print $0}' 1.txt ?和 awk -F ':' '$7=1 {print $0}' 1.txt

? ?awk -F ':' '{print $0}' 1.txt ? ? ? ?//打印所有的行 ,即整個(gè)記錄

? ?awk -F ':' '$7=1 {print $0}' 1.txt ? //以冒號(hào)為分隔符,輸出時(shí)將每行的第七段的內(nèi)容更改

? ?為1,并打印所有的行,此時(shí)并不會(huì)連帶分隔符一起輸出


14. 使用grep過(guò)濾某個(gè)關(guān)鍵詞時(shí),如何把包含關(guān)鍵詞的行連同上面一行打印出來(lái),那下面一行呢?同時(shí)上面和下面都打印出來(lái)呢?

grep -B1 上面一行

grep -A1 下面一行

grep -C1 上下各一行


轉(zhuǎn)載于:https://blog.51cto.com/tengxiansheng/1705894

總結(jié)

以上是生活随笔為你收集整理的关 于 正 则 表 达 式 的 类 习 题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。