Linux 文本处理
它可以用于匹配和查找符合特定模式的字符串,从而实现强大的文本处理功能。2. 搜索和替换:正则表达式可以用于搜索和替换文本中的特定字符或模式。可以通过正则表达式匹配需要替换的字符串,并使用新的字符串进行替换。3. 字符串提取:正则表达式可以从文本中提取特定的信息或字段。awk 'BEGIN {printf "----------开头------- \n"}{printf$0 "\n"}' aaa。总
1.正则表达式
Linux 正则表达式在文本处理和搜索过程中起着非常重要的作用。它可以用于匹配和查找符合特定模式的字符串,从而实现强大的文本处理功能。以下是一些常见的正则表达式作用:
1. 匹配字符串:正则表达式可以根据指定的模式匹配字符串。比如,可以使用正则表达式查找所有以特定字符开头或结尾的字符串。
2. 搜索和替换:正则表达式可以用于搜索和替换文本中的特定字符或模式。可以通过正则表达式匹配需要替换的字符串,并使用新的字符串进行替换。
3. 字符串提取:正则表达式可以从文本中提取特定的信息或字段。例如,可以使用正则表达式从日志文件中提取特定时间段内的日志记录。
4. 格式验证:正则表达式可以用于验证输入数据的格式。例如,可以使用正则表达式验证邮箱地址、手机号码、IP地址等。
5. 数据清理:正则表达式可以帮助清理和规范化数据。可以通过正则表达式删除或替换文本中的非法字符、空白字符等。
总之,正则表达式在Linux中提供了一种强大的方式来处理和操作文本数据,让文本处理变得更加灵活和高效。
元字符 | 作用 |
. | 任意单个字符 |
* | 前一个字符匹配0次或多次 |
? | 匹配前面的子表达式0到1次 |
^ | 匹配行首 |
$ | 匹配行尾 |
[ ] | 匹配中括号中的任意一个字符 |
[^] | 匹配除中括号以外的任意一个字符。 |
\ | 转义符 |
\{n\} | 表示其前面的字符恰好出现n次。 |
\{n, \} | 表示其前面的字符出现不小于n次。 |
\{n, m\} | 表示其前面的字符至少出现n次,最多出现m次。 |
2.字符串截取命令
1.cut命令
语法:cut [选项] 文件名
-f 提取第几列
-d 分隔符:按照指定分隔符分割列
-b 以字节单位进行分割
例:
提前准备好的数据
ID Name Password Level
1 wang wang1234 2
2 li li789456 3
3 xv xv123456 1
4 liao liao4567 3
显示第2-4列的数据
cut -f 2-4 aaa
显示第2和4列的数据
cut -f 2,4 aaa
3.printf命令
语法:printf '输出类型输出格式' 输出内容
类型转换符 解释
%s 输出字符串
%i 输出整数
%f 输出浮点数
转义字符 解释
\a 输出警告声音
\b 输出退格键(Backspace)
\f 清除屏幕
\n 换行 常用
\r 回车 常用
\t 缩进(tab) 常用
\v 垂直输出退格键
3、awk命令
语法:awk [参数] [处理内容] [文件名]
1、条件(pattern):
>
>=
==
<=
<
例:大于1级的用户
awk '$4 > 1' aaa
例:在开头添加信息
awk 'BEGIN {printf "----------开头------- \n"}{printf$0 "\n"}' aaa
4.sed命令
语法 sed [选项] [sed内置命令字符] [文件名]
示例:
sed -n 'p' 文件路径
选项:
-n | 取消默认输出格式,只打印处理过的行(通常搭配p使用) |
-i | 修改保存文件(默认为预览) |
-e | 同时执行多个过滤 |
-r | 扩展正则表达式 |
内置命令字符
a | 在指定行后添加一条数据或多行数据 |
d | 删除匹配的整行内容 |
i | 在指定行前添加一条数据或多行数据 |
p | 打印当前匹配的数据 |
c | 更改匹配行的内容 |
w | 筛选的内容保存到文件 |
r | 读取文件并追加 |
s | 将匹配的内容进行替换(支持正则表达式) |
5.排序命令sort命令
语法:sort [选项] 文件名
选项 | 解释 |
-f | 忽略大小写 |
-n | 以数值型进行排序,默认使用字符串型排序 |
-r | 反向排序 |
-t | 指定分隔符,默认是分隔符是制表符 |
-k n,m | 按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾) |
6.统计命令wc
语法: wc [选项] 文件名
-l 只统计行数
-w 只统计单词数
-m 只统计字符数
如有错误给孩子提醒一下,感谢观看!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)