文本处理三大函数

grep:一种强大的文本搜索工具,它能使用正则表达式匹配模式搜索文本,并把匹配的行打印出来

格式:grep [options] pattern file
常见参数

-w: word 精确查找某个关键词 pattern -c: 统计匹配成功的行的数量 -v: 反向选择,即输出没有没有匹配的行 -n: 显示匹配成功的行所在的行号 -r: 从目录中查找pattern -e: 指定多个匹配模式 -f: 从指定文件中读取要匹配的 pattern -i: 忽略大小写

正则表达式:是对字符串操作的一种逻辑公式,就是用事先 定义好的一些特定字符、及这些特定字符的组合,组成一个 “规则字符串”,这个“规则字符串”用来表达对字符串的 一种过滤逻辑。

^ 行首 $ 行尾 . 换行符之外的任意单个字符 ? 匹配之前项0次或者一次 + 匹配1次或者多次 * 匹配0次或者多次 {n} 匹配n次 {n,} 匹配至少n次 {m,n} 至少m,最多n [] 匹配任意一个 [^] 排除字符 | 或者

sed:流编辑器,一般用来对文本进行增删改查

用法:sed [-options] ‘script’ file(s)
常见参数

-n:禁止显示所有输入内容,只显示经过sed处理的行(常用) -e:直接在命令模式上进行 sed 的动作编辑,接要执行的一个或 者多个命令 -f:执行含有 sed 动作的文件 -r:sed 的动作支持的扩展正则(默认基础正则) -i:直接修改读取的文件内容,不输出。 image.png image.png

awk:也称gawk,编程语言,可对文本和数据进行处理

常见参数:-F,fields,设置字段分隔符; -v,var=value 定义awk程序中的一个变量及其默认值
用法:awk [options] ‘{script}’ file

基础结构: ‘ {script} ‘ 匹配结构: ‘ /pattern/{script} ‘ 扩展结构: ‘BEGIN{script} {script} END{script}’

awk 在读取一行文本时,会用预定义的字段分隔符划分每个数据字段,并分配给一个变量。

  • $0 代表整个文本行;
  • $1 代表文本行中的第1个数据字段;
  • ……
  • $NF 代表文本行中的最后一个数据字段 awk 默认的字段分隔符是任意空白字符(如:空格 or 制表符),也可以用-F参数自定义分隔符

awk 内置变量:

  • FS :定义输入字段分隔符,Field Separator,同 –F
  • RS :定义输入记录分隔符,Record Separator
  • OFS :定义输出字段分隔符,Out Field Separator
  • ORS :定义输出记录分隔符,Out Record Separator
  • NF :数据文件中的字段总数,可以简单理解为列数
  • NR :已处理的输入记录数,可以简单理解为行数
  • 也可以通过 -v 参数自定义变量或传递外部变量

awk 条件和循环语句: if:条件判断 awk ‘ { if (判断条件) {yes} else {no} } ‘ for:循环语句 awk ‘ { for (循环条件) {循环语句} } ‘

awk 数学运算: + (加),- (减), * (乘),^ (幂) / (除), (平方), % (取余) int(x) x的整数部分,取靠近零一侧的值 log(x) x的自然对数 **

文本处理实战练习及答案

Linux基础练习题.md