UNIX命令之正则表达式

    科技2023-10-01  86

    正则表达式

    1.文件操作 2.1搜索有the的行,并输出行号。 grep -n ‘the’ 1.txt 搜索没有the的行,并输出行号。 grep -vn ‘the’ 1.txt

    2.2利用[ ] 搜索集合字符,[ ]表示其中一个字符。 例: [ade] 表示a或d或e grep -n ‘t[ae]st’ 1.txt 输出:8. I can’t finish test。 9.Oh! the suop taste good!

    2.3用^符号做[ ]内的前缀,表示除了[ ] 内的字符之外的字符。 例:搜索oo前边没有g的字符串所在的行,使用’[ ^ g ]oo’做搜索字符串。 grep -n ‘[ ^ g ]oo’ 1.txt 输出:Football game。 [ ]内可以用范围表示,如[a-z]表示大小写字母,[0-9]表示数字,[A-Z]表示所有大写字母,[a-z0-9A-Z]表示所有的数字和字母,当然也可以匹配^来排除字符。 grep -n ‘[0-9]’ 1.txt 输出: 7. 1234 9. You are no.1

    2.4行首与行尾字符 ^ $ ^表示行的开头,$表示行的结尾(不是字符,是位置)这里 ^ 与[ ] 里面的使用 ^意义不同,它表示 ^ 后面的串是行的开头。 例:搜索the开头的行。 grep -n ’ ^ the ’ 1.txt 输出: 12. the synbd. 搜索以小写字母开头的行。 grep -n ’ ^ [ a-z ]’ 1.txt 输出: 3. abc 7. asdf 2.5任意一个字符,与重复的字符* * 表示有0个或多个某个字符 。+ ? 例如:oo*,表示第一个o一定存在,第二个o可以有多个或一个甚至没有,因此代表至少有一个o . 表示一个任意字符,必须在 . g??d 可以用 g…d 表示。 good,gxxd,gadd都符合。 例如:grep -n ‘g…d’ 1.txt 输出:9. taste good! 16. with ‘glad’ 例:前两个o一定存在,第三个o可以没有,也可能有多个。 grep -n ’ ooo* ’ 1.txt 输出: 1. a good mechansim.

    Processed: 0.016, SQL: 9