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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

学习笔记:文本过滤_____unix 下的通配符

發(fā)布時(shí)間:2025/3/20 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记:文本过滤_____unix 下的通配符 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
有個(gè)文件 test.txt 內(nèi)容如下:

bash-3.00$ cat test.txt?useruseruser_hiuser#注:呢行系空行T
J
GATEMAN
GATTTTTEMAN
GABBEMAN
AAABbash-3.00$?

下面介紹下常用的通配符 配合grep 命令:1. ? "." ? 匹配單字符例如:bash-3.00$ grep -n u..r test.txt?1: ? ? ?user2: ?user3: ? user_hi4:userbash-3.00$ grep -n u..r.h.. test.txt ? ? #匹配唔成功bash-3.00$ grep -n u..r.h. test.txt?3: ? user_hi

==========================================================================2. ?”^" 匹配行首例如:bash-3.00$ grep -n ^u test.txt?4:user ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#只匹配到第4行, 因?yàn)閊u 表示以u(píng)開頭的行,不包括以空格和tab開頭的行bash-3.00$ grep -n ^u.e test.txt ? ?# 和. 配合使用4:user
==========================================================================3. "$" 匹配行尾例如:bash-3.00$ grep -n er$ test.txt ? ? ? ? ? ? ? ? ? ? ?#以er結(jié)尾的行1: ? ? ?user2: ?user4:userbash-3.00$ grep -n ^u..r$ test.txt ? ? ? ? ? ? ? ? ?#配合^使用 ?以u(píng)開頭 中間有2個(gè)字符 而且 r結(jié)尾的行4:userbash-3.00$ grep -n ^$test.txt ? ? ? ? ? ? ? ? ? ? ? # ?^$ 只匹配空行 ?不包括有空格的行(第5行)5:bash-3.00$ grep -n ^.$test.txt ? ? ? ? ? ? ? ? ? ? ?# 匹配只有1個(gè)字符的行(第6行只有1個(gè)字符T)6:Tbash-3.00$ grep -n ^..$test.txt ? ? ? ? ? ? ? ? ? ???# 匹配有且只有2個(gè)字符的行(第7行只有2個(gè)字符:空格 和 J)7: J
==========================================================================4. "*" 匹配單字符 或重復(fù)隊(duì)列例如:bash-3.00$ grep -n * test.txt ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #單獨(dú)使用 *什么也匹配不到bash-3.00$ grep -n ^k*test.txt ? ? ? ? ? ? ? ? ? ? ? ? ? ?#匹配以n個(gè)k開頭的行 n>=0 ?因?yàn)榘?個(gè)k開頭的行,所以實(shí)際上匹配所有行1: ? ? ?user2: ?user3: ? user_hi4:user5:6:T7: J8:GATEMAN9:GATTTTTEMAN10:GABBEMANbash-3.00$ grep -n us*e..h*i$ test.txt ? ? #未指定開頭,含有1個(gè)u,后面跟0個(gè)或n個(gè)s,跟著e,跟住2個(gè)字符,跟住0個(gè)或n個(gè)h,i結(jié)尾????3: ? user_hibash-3.00$ grep -n GAT*..AN$ test.txt ? #你懂的 ?0個(gè)或N個(gè)T8:GATEMAN9:GATTTTTEMAN

gateman@GPC:~/shell$ grep -n G.*MAN test.txt # .*組合使用 常用的來了 意思是G后面跟任意字符 任意次..
8:GATEMAN
9:GATTTTTEMAN
10:GABBEMAN

==========================================================================5. ? ”\“?屏蔽一個(gè)特殊字符的含義有時(shí)需要查找一些字符或字符串,而它們包含了系統(tǒng)指定為特殊字符的一個(gè)字符。什么是特殊字符?一般意義上講,下列字符可以認(rèn)為是特殊字符:¥ ., () {} [] * ^ % $.....假定要匹配包含字符“.”的各行而?"." 代表匹配任意單字符的特殊字符,因此需要屏蔽其含義。操作如下:\ .上述模式不認(rèn)為反斜杠后面的字符是特殊字符,而是一個(gè)普通字符,即句點(diǎn)。假定要匹配包含^的各行,將反斜杠放在它前面就可以屏蔽其特殊含義。如下:\ ^如果要在正則表達(dá)式中匹配以* . p a s結(jié)尾的所有文件,可做如下操作:\ * \ . p a s即可屏蔽字符*的特定含義。==========================================================================
6.? "[ ]" 匹配1個(gè)集合
如:
gateman@GPC:~/shell$ grep -n u[Ss]er test.txt???????????????? #匹配大寫 S或小寫s
1:??? user
2:? user
3:?? user_hi
4:user

為抽取諸如S c o u t、s h o u t、b o u g h t等單詞,使用下列表達(dá)式:
[ou] .*t
匹配以字母o或u開頭,后跟任意一個(gè)字符任意次,并以t結(jié)尾的任意字母。
也許要匹配所有包含s y s t e m后跟句點(diǎn)的所有單詞,這里S可大寫或小寫。使用如下操作:
[ S,s ] y s t e m \ .
[ ]在指定模式匹配的范圍或限制方面很有用。結(jié)合使用*與[ ]更是有益,例如[ A - Z a - Z ] *將
匹配所有單詞。
[ A - Z a - z ] *
注意^符號(hào)的使用,當(dāng)直接用在第一個(gè)括號(hào)里,意指否定或不匹配括號(hào)里內(nèi)容。
[^a-zA-Z]
匹配任一非字母型字符,而
[ ^ 0 - 9 ]
匹配任一非數(shù)字型字符。
==========================================================================
7. "\{\}" 指定匹配次數(shù)

例如:
gateman@GPC:~/shell$ grep -n ?AT\{1\}E test ? ? ? ? ? ? ? ? ? ? ? ? ? ?#一定要帶“ ”號(hào),否則無結(jié)果 ?gateman@GPC:~/shell$ grep -n "AT\{1\}E" test.txt ? ? ? ? ? ? ? ? ? ? ?#只跟1個(gè)T8:GATEMANgateman@GPC:~/shell$ grep -n "A\{1,\}B" test.txt ? ? ? ? ? ? ? ? ? ? ?#1個(gè)或以上的A跟住B ?例如AB AAB AAAB..10:GABBEMAN11:AAABgateman@GPC:~/shell$ grep -n "A\{1\}B" test.txt ? ? ? ? ? ? ? ? ? ? ? #只匹配AB, 注意: ?AAAB 包含AB10:GABBEMAN11:AAAB
gateman@GPC:~/shell$ grep -n "^A\{1,2\}B" test.txt ? ? ?#1~2個(gè)A ,只匹配AB 和AAB 并且以A開頭, 注意: ?AAAB 不符gateman@GPC:~/shell$ grep -n "^A\{1,3\}B" test.txt ? ? ?#這個(gè)就可以穩(wěn)出來了.11:AAAB


總結(jié)

以上是生活随笔為你收集整理的学习笔记:文本过滤_____unix 下的通配符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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