正则表达式

数组:

grep:查找文件内容

配合正则表达式
sort:文本内容排序

  • sort---选项---文件名
  • cat---文件名 | sort 选项

uniq 去重,用于统计或者忽略文件中连续出现的重复行,一般和sort结合使用

  • uniq---选项---文件名
  • cat---文件名 | uniq---选项

-c:统计连续重复的行的次数,并且合并重复的行

-u:显示仅出现一次的行(包括不连续的重复行)

-d:仅显示重复出现的行(必须是连续的重复行)


tr:用来对标准输入的字符串进行替换,压缩和删除

tr---选项---参数

echo "字符串" | tr 选项

-c:保留字符集1的字符,用其他字符来替换字符集2

-d:删除属于字符集1的字符

-s:将重复出现的字符串压缩成一个,用 字符集2 替换字 符集1

-t:替换字符集,可以不加(默认)

用转译符压缩空格:

↓

cut:截取,对字段进行截取和裁剪

cut---选项---参数

cat---文件名 | cut---选项

  • d:指定分隔符(默认分隔符是tab)
  • f:指定要截取的字段
  • b:以字符的单位进行截取
  • c:以字符的单位进行截取
  • conmplement:排除指定的字段
  • output-delimiter:更改输出内容的分隔符

cut -d '分隔符' -f 1-3 /etc/passwd

文件合并的方法是什么,区别是什么★★★★★

cat 1 2 > 3 -------------- 特点:它是上下合并

paste 1 2 > 3 ----------------- 特点:它是左右合并


文件拆分:有一个日志文件,8G,直接打开速度很慢,有什么办法提高速度?

拆分:

split

  • -l:按行分割
  • -b:按大小分割

面试题:★★★★★


统计当前主机的连接状态 ★★★★★

统计nginx的访问日志当中多次出现的ip地址:

正则表达式:

按照一定的格式和符号来匹配文件内容(命令输出的结果也属于文件内容的一部分)

通配符:匹配文件名或者目录名

  • *:任意一个或多个字符
  • ?:任意的单个字符
  • a-z -----任意单个
  • A-Z -----任意单个
  • 0-9 -----任意单个

正则表达式的格式:

1、基本正则表达式:grep

2、扩展正则表达式:grep -E = egrep

元字符:

  • . 匹配任意单个字符,可以是一个汉字
  • () 使用转义符,只表示()
  • \] 匹配指定范围内的任意单个字符,示例:\[dn\] \[0-9\] \[\] \[a-zA-Z\] \[:alpha:

  • \^\] 匹配指定范围外的任意单个字符,示例:\[\^dn\] \[\^a.z

  • :alnum:\] 字母和数字 \[0-9\] \[a-z\] \[0-9\] \[a-z

  • :alpha:\] 代表任何英文大小写字符,亦即 \[A-Z\], \[a-z

  • :lower:\] 小写字母,示例:\[\[:lower:\]\],相当于\[a-z

  • :upper:\] 大写字母 \[A-Z

  • \[:blank:] 空白字符(空格和制表符)
  • :space: 包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白,比:blank:包含的范围广
  • :cntrl: 不可打印的控制字符(退格、删除、警铃...)
  • :digit: 十进制数字
  • :xdigit:十六进制数字
  • :graph: 可打印的非空白字符
  • :print: 可打印字符
  • :punct: 标点符号
  • \w #匹配单词构成部分,等价于_\[:alnum:]
  • \W #匹配非单词构成部分,等价于\^_\[:alnum:]
  • \S #匹配任何非空白字符。等价于 \^ \\f\\n\\r\\t\\v。
  • \s #匹配任何空白字符,包括空格、制表符、换页符等等。等价于 \\f\\n\\r\\t\\v。

表示次数:

*(星号):任意字符,表示匹配前面的任意字符,0次也算,尽可能多的匹配

.*(星号):任意长度的字符,最少要有一次,也就是匹配所有

\ ?:匹配前面的字符0次或者1次

\ +:匹配前面的字符最少得有1次

\ {n }:匹配前面的字符等于多少次

\ {m,n }:匹配前面的字符最多n次,最少m次

{,n }:匹配前面的字符最多是n次,只要比n小都算

{n, }:匹配前面的字符至少n次,只要比n大都算

位置锚定:

以什么开头:^

以什么结尾:$

空行:^$

"^某个词$" :匹配的内容只能有引号中的这一个单词,多的不匹配

词首锚定:\ b + 词

词尾锚定:词+ \ b

分组和逻辑条件:

  • 分组:()

↓

或:\ |

扩展正则:

grep -E

sed -r

egrep

相关推荐
Rebecca_aLi16 分钟前
码匠教育:零基础学 Python,标识符到循环全套基础语法解析
开发语言·python·正则表达式
IvanCodes23 分钟前
Python 正则表达式(十四):文本匹配、查找与替换
开发语言·python·正则表达式
FED_AF19 小时前
Linux运维“邪修”功法之正则表达式
linux·运维·正则表达式
长按助力退休2 天前
正则表达式从入门到不懵逼
正则表达式
小白快快跑哦8 天前
python-字符串全解(六):正则表达式-转义与非转义
python·正则表达式·转义与非转义
zx_7414848110 天前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Patrick在香港12 天前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
梦帮科技14 天前
Next.js 16 模块化单体实战:App Router、领域模块与 Route Handler 分层
css·数据结构·链表·正则表达式·node.js·json·html5
yume_sibai20 天前
正则表达式完全指南(基础语法 + 实战应用 + 性能优化 + 最佳实践)
开发语言·正则表达式·c#
研☆香21 天前
js中使用的正则表达式
开发语言·javascript·正则表达式