Shell中正则表达式及sed和awk常见问题
程序员文章站
2023-12-29 15:29:04
目录10 提取当前eth0网卡的ipv4地址及掩码信息。11 找出uid位于10~20之间的用户,输出用户名及对应的uid。1 正则表达式中的+、?、*分别表示什么含义?这三个字符用来限制关键词的匹配...
1 正则表达式中的+、?、*分别表示什么含义?
这三个字符用来限制关键词的匹配次数,含义分别如下:
- +:最少匹配一次,比如a+可匹配a、aa、aaa等
- ?:最多匹配一次,比如a?可匹配零个或一个a
- *:匹配任意多次,比如a*可匹配零个或任意多个连续的a
2 如何编写正则表达式匹配11位的手机号?
3 简述sed定址符的作用及表示方式。
作用:地址符(执行指令的条件)控制sed需要处理文本的范围;不加定址符则逐行处理所有行
表示方式:地址符可以使用行号或正则表达式
4 如何使用sed提取文本中的偶数行?
查看测试文本:
提取偶数行的操作及效果:
5 如何使用sed删除文本中每行的第4个字符?
查看测试文本:
删除每行第4个字符的操作及效果:
6 提取/etc/passwd文件的第6-10行,另存为pass5.txt文件。
提取或导出文本:
确认提取结果:
7 简述awk工具的基本语法格式。
格式1: awk [选项] ‘[条件]{处理动作}' 文件列表
格式2: 命令 | awk [选项] ‘[条件]{处理动作}'
8 简述awk工具常用的内置变量、各自的作用。
- $n:即$1、$2、$3……,表示指定分隔的第几个字段
- $0:保存当前读入的整行文本内容
- nf:记录当前处理行的字段个数(列数)
- nr:记录当前已读入行的数量(行数)
9 awk处理文本时,读文件前、读取文件内容中、读文件后后这三个环节是如何表示的?
- begin{ } 文件前处理:awk没有读入行之前 要执行的动作; 一般对数据作初始化操作,可以单独使用。
- { } 行处理:对awk读入的每一行进行处理,可以单独使用。
- end{ }文件后处理:awk 把所有的行都处理完后要执行的动作,一般输出数据处理的结果。可以单独使用。
10 提取当前eth0网卡的ipv4地址及掩码信息。
查看测试文本:
提取ipv4地址及掩码信息的操作及效果:
11 找出uid位于10~20之间的用户,输出用户名及对应的uid。
12 利用awk工具统计使用bash作为解释器的用户数量。
使用nf内置变量找最后一列的内容,匹配bash即可让x+1:
13 在awk中是否可以使用数组,分别以什么构成?
可以使用数组,分别以 数组名、下标、值 三个部分构成
14 在linux中对文本的排序如何实现?
使用sort命令,比如abc.txt文本
另外还可以使用选项-n按数字升序排列 -k:针对指定的列进行排序 -r:反向排序
到此这篇关于shell中正则表达式及sed和awk常见问题的文章就介绍到这了,更多相关shell正则表达式及sed和awk内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!