Linux命令&&正则表达式

1.linux命令(grep、sort、uniq、tr、cut、split、paste)


1-1 grep命令

作用:过滤查找文本内容。

常用选项:

-m #:匹配几次之后停止。按行匹配,不是字符个数。
-v:取反。
-n:显示匹配的行号。
-c:仅显示匹配的行数,不显示匹配内容。
-o:仅显示匹配的内容。
-q:静默模式。
-A 数字:after 后几行。
-B:显示匹配到的行,以及前几行。
-C:前后各几行。
-e:实现多个过滤条件之间的逻辑或关系。
-w:匹配整个单词。
-E:使用扩展正则表达式。
-f:根据模式文件进行匹配,匹配两个文件的相同的内容。
-r:递归目录,但是不处理软链接。匹配目录中的文本的内容。
-R:递归目录,处理软链接。匹配目录中的文本的内容。
-E:扩展正则。

tip:

文本三剑客:grep 主要的就是查    
        sed 增和改                
        awk 按行取列            
都是针对文本的内容。


1-2 sort命令

作用:按照行对文件内容进行排序,也可以过呢据不同的数据类型进行排序。

sort 选项 参数
cat 文件 | sort 选项
常用选项:

-f 忽略大小写,默认会把大写字母排在前面(默认选项)。                                                             -b 忽略每行前面的空格。
-n 按照数字进行排序。                                                                                                                       -r 反向排序。
-u 相同的数据只显示一行,去重。
 -o 将排序后的文本内容转存到其他文件。


1-3 uniq命令

作用:按行进行处理,去重复行(连续出现)。

uniq 选项 参数
cat 文件 | uniq 选项
常用选项:
-c 统计连续重复出现的行的次数,并且合并重复的行,并展示。
-u 显示仅出现一次的行。
-d 显示仅重复出现的行。


1-4 tr命令

作用:字符替换,压缩,删除。

tr 选项 参数
cat 文件 | tr 选项
-c 保留字符集1的字符,其他字符用字符集2进行替换。
-d 删除字符集。
-s 重复出现的字符串压缩为一个字符串。
-t 默认可以不加,替换。把字符集2替换成字符集1。


1-5 cut命令

作用:快速裁剪,对字段进行截取和裁剪。

cut 选项 参数
cat 文件 | cut 选项
-d 指定裁剪的分隔符(默认的分隔符是tab的空格)。
-f 按行取列。根据第几个字段进行截取。
-b 以字节为单位,进行截取。
-c 以字符为单位,进行截取。
-complement 排除所指定的字段。
-output-delimiter 更改输出结果的分隔符。


1-6 split命令

作用:可以把大文件拆分成若干小文件。
-l 指定行数进行拆分。
-b 指定大小进行拆分。

tip:*面试题命令*
如何对文件进行拆分:
现在有一个日志文件,5G,直接打开速度很慢,有什么办法优化呢?
文件进行拆分


1-7 paste命令

*面试题命令*
cat合并和paste有什么区别?
paste合并命令:
cat是上下合并
paste是左右合并


2.0 正则表达式


2-1 Linux当中的通配符

作用:

通配符用来匹配文件名或者目录名。
*:匹配任意一个或者多个字符。
?:匹配任意一个字符。
[]:范围匹配。


2-2 正则表达式

正则表达式:由一类特殊字符以及文本字符所编写的模式。其中有些字符不表示字符字面的含义,而表示控制或者通配的功能。用来处理文本内容当中的字符。
由一些特殊字符组成的特定格式的内容,用来匹配文件当中的内容。

元字符:
. :匹配任意单个字符,也可以是一个汉字。
\:转义符。
():分组\(\)。
[]:匹配指定范围内的单个字符。
[a-z A-Z 0-9]
[[:blank:]]:匹配空格和制表符。
[^a]:表示除了a以外,取反。

表示次数:
*:匹配前面的字符任意次,包括0次,尽可能长的匹配。
.*:匹配前面的愿意字符任意次,但是不包括0次。
\?:匹配前面的字符,出现0次或者1次,可有可无。
\+:匹配前面出现的字符最少1次,最多无限。>=1。
\{n\}:表示前面的字符只能出现=n次。
\{n,m\}:表示前面的字符最少n次,最多m次。
\{,n\}:表示前面的字符最多出现n次。
\{n,\}:表示前面的字符最少出现n次,只要n次,n多次。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux命令中,正则表达式是一种强大的工具,用于在文本中进行模式匹配和搜索。正则表达式可以应用于各种命令(如grep、sed、awk等),以及编辑器(如vim)和服务器(如nginx)等。正则表达式由字母、数字和特殊符号组成,按照一定的规则来表达某种含义。 在Linux命令中,常见的正则表达式符号包括: 1. . (点号):匹配任意一个字符。 2. * (星号):匹配前一个字符的零个或多个出现。 3. + (加号):匹配前一个字符的一次或多次出现。 4. ? (问号):匹配前一个字符的零次或一次出现。 5. [] (方括号):用于定义字符集,匹配方括号中任意一个字符。 6. ^ (脱字符):匹配行的开始位置。 7. $ (美元符号):匹配行的结束位置。 8. \ (反斜杠):用于转义特殊字符。 举个例子,如果你想在一个文件中查找所有以"hello"开头的行,你可以使用grep命令结合正则表达式进行匹配。命令如下: grep "^hello" filename 其中,^表示行的开始位置,"hello"表示要匹配的字符串。这个命令会输出所有以"hello"开头的行。 另外,正则表达式还支持更复杂的模式匹配,比如通配符、字符类、重复选项等。你可以根据具体的需求,结合正则表达式的语法规则,来构建适合你的匹配模式。 综上所述,正则表达式Linux命令中是一个非常有用的工具,可以帮助你快速准确地进行文本搜索和模式匹配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值