Linux-通配符与正则表达式

补充:命令

输出重定向

标准输出:是将信息输出在终端

标准错误输出:在执行命令的过程中所产生错误信息也是输出在终端

标准输入:从键盘输入

1、标准输入重定向

作用:将本来要显示在终端上的信息重定向到一个文件夹中

实现方法

>:将文件中原有的内容全部删除,然后进行写入

>>:在文件的原有内容后,追加新的内容

2、标准错误错误输出重定向

2>:将文件中原有的内容全部删除,然后进行写入

2>>在文件的原有内容后,追加新的内容

例:将正确和错误的信息都保存到同一个文件中

ls /root /raat &> 1.txt

通配符

1、*:任意长度的任意字符

例:删除以a开头的文件

rm -rf a*

2、?:一个长度的任意字符

例:删除文件名第二个是a的文件

rm -rf ?a

3、;(分号):用于链接多个命令

例:cd /tmp;cd ~;ls /

4、&&:只有前面的命令执行成功,后面的命令才会执行

例:cd ~ && ls

5、||:只有前面的命令执行失败,才会执行后面的命令

例:cd /toit || ls

6、#:注释行(描述信息,不执行)

7、|:管道符,将前面的命令执行结果,传递到后面

8、~:root的家目录

9、-:上一次所在的目录

例:cd - 》返回上一次所在目录

10、$:变量前加的符号

11、/:表示根或分隔符

12、>、>>:重定向

13、<<:用于打印菜单

例:

cat << EOF

> 1

> 2

> 3

> EOF

14、引号

" ":强引用,引用中的变量会变成变量的值

' ':弱引用,引用的内容原样输出

` `:命令替换

15、.(点):表示当前目录

..:表示上一级目录

16、{}:花括号展开

用法:创建1-10.dir目录

mkdir {1..10}.dir

正则表达式

构成:一堆特殊符号和字母构成----叫做元字符

作用:通过对文本中内容进行过滤,然后对文件中的内容进行过滤

正则表达式的种类

基础正则表达式

扩展正则表达式

通常结合三个命令来使用

grep

sed

awk

命令:grep

作用:对文件的内容进行过滤

格式:grep 选项 "匹配内容" 文件名

选项

-v:取反

-o:仅仅显示所匹配的内容

-E:使用扩展

-i:忽略大小写

正则和通配符的区别

通配符是对文件名进行匹配,正则表达式是对文件中的内容进行匹配

正则中元字符

1、匹配单个字符

.(点):表示任意一个字符(可以是空格、逗号、数字...)

例:匹配a前面有一个字符的行

grep ".a" 文件名

2、[ ]:表示范围内中的其中一个

[12345]:匹配1或2或3或4或5

[0-9]:匹配所有的数字

[a-z]:匹配所有的小写字母

[A-Z]:匹配所有的大写字母

[a-Z]:匹配所有的字母(不分大小写)

3、用字符集的方式表达

[[:space:]]:表示一个空格

[[:digit:]]:表示任意一个数字

[[:lower:]]:表示任意一个小写字母

[[:upper:]]:表示任意一个大写字母

[[:alnum:]]:表示任意一个字母+数字

[[:punct:]]:表示任意一个标点符号

4、^[]

例:匹配以a开头的行

grep "^[a]" 文件名

grep "^a" 文件名

例:匹配除a之外的任意字符

grep "[^a]" 文件名

5、显示匹配到的内容前的若干行

-An:显示匹配到的内容的后n行

-Bn:显示匹配到的内容的前n行

-Cn:显示匹配到的内容的前后各n行

例:匹配包含root的行前3行

grep -B3 "root" 文件名

6、次数匹配

*:前面字符出现了任意次数

例:过滤文件中开头第一个字符为a的行

grep "a*" 文件名

.*:表示任意长度的任意字符

例:过滤文件中以a开头,b结尾

grep "a.*b" 文件名

?:表示其前面的字符出现一次

a\{m,n\}b:b前面的a出现m次,最多n次

7、位置锚定

^n:表示以n开头的行

$n:表示以n结尾的行

\<n:表示单词首部

n\>:表示单词尾部

^$:表示空白行

8、分组

\( \):将一个内容当作一个整体看待

例:过滤出出现两个相同数字的行

grep "\([[:digit:]]\).*\1" 文件名

扩展正则表达式

基础正则:grep [选项] 匹配内容 文件名

扩展:

grep -E 匹配内容 文件名

egrep 匹配内容 文件名

{1, }等同+:其前面的字符至少出现过1次

相关推荐
西洼工作室12 小时前
【java 正则表达式 笔记】
java·笔记·正则表达式
kiss strong1 天前
正则表达式
正则表达式
Linux运维技术栈1 天前
Python字符串及正则表达式(十一):正则表达式、使用re模块实现正则表达式操作
开发语言·python·正则表达式
jackiendsc1 天前
Java中正则表达式的介绍、使用场景及示例代码
java·开发语言·正则表达式
taller_20001 天前
VBA之正则表达式(48)-- 快速拆分中文语句
正则表达式·正则·拆分中文·中文拆分·中文标点
梧桐树04291 天前
python:正则表达式
数据库·python·正则表达式
葡萄架子1 天前
Python中的正则表达式
python·mysql·正则表达式
Oneforlove_twoforjob2 天前
【Java】正则表达式基础题+场景题练习
正则表达式
产幻少年3 天前
正则表达式
正则表达式
Spcarrydoinb3 天前
正则表达式
笔记·学习·正则表达式·脚本语言