Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法 |
您所在的位置:网站首页 › 编辑脚本命令怎么用 › Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法 |
目录 1.sed命令--编辑、过滤文本,非交互式,方便再脚本中使用 2.awk命令,对文本、数据进行过滤、统计、截取处理 2.1 awk命令脚本基本结构体 2.2 用正则表达式进行匹配 2.3 关系表达式、运算符表达式 2.4 模式匹配表达式 2.5 awk 命令内部变量 2.6awk命令的流程控制 3.grep命令-根据某个规则查找文本 4.sort命令 5.uniq命令 6.wc命令 linux文本三剑客:grep(文本过滤)、文本截取(awk)、sed(文本替换) 1.sed命令--编辑、过滤文本,非交互式,方便再脚本中使用sed的常用命令选项: -n:只显示匹配处理的行(否则会输出所有) -e:执行多个编辑命令时(一般用;代替) -i:直接在文件中进行修改,而不输出到屏幕 -r:支持扩展正则表达式 -f:从脚本文件中读取内容并执行(文件中的编辑命令每行一个,不用;隔开) sed的常用编辑命令: p:打印匹配行 print sed -n ‘/模式/p’ 输入文件 这里的模式可以是正则表达式也可以是精确字符\ d:删除指定行 delete a:在匹配行后面追加 append i:在匹配行前面插入 insert c:整行替换 r:将文件的内容读入 read w:将文本写入文件 write s:字符串替换(匹配正则表达式)substitution = :输出行号 n: 用新的命令去处理下一行 2.awk命令,对文本、数据进行过滤、统计、截取处理常用的命令选项: -F 指定分隔符 ,默认空白符 -v var=value 将外部变量传递给awk -f scripfile 从脚本文件中读取awk命令 2.1 awk命令脚本基本结构体由三大块组成: 'BEGIN{语句块} /模式/{动作} END{ 语句块}' ,BEGIN、模式通用语句块、END都是可选模块,可以不写。 BEGIN模块:在文本处理之前执行,并且只会执行一次。用于定义一些变量和输出一些内容 通用语句模块:读取文本的每一行交给这个语句块。 END模块:在读取完所有的行之后执行,统计、分析结果这些信息在END之中完成,只会执行一次。 2.2 用正则表达式进行匹配 2.3 关系表达式、运算符表达式 2.4 模式匹配表达式 2.5 awk 命令内部变量NF:每行的字段数 NR:当前处理的行号 FS:指定当前的分隔符,默认是空格字符,相当于-F OFS:指定当前输出的分隔符,默认是空格字符。 2.6awk命令的流程控制统计每个班每个科目的平均分 3.grep命令-根据某个规则查找文本grep的三兄弟 命令是否支持正则支持的正则类型grep支持基本正则表达式egrep支持拓展正则表达式fgrep不支持常用的命令选项: -a :不要忽略二进制数据 -A :显示该行以及之后的行after -B :显示改行以前的几行before -c :计算符合样式的列数 -C:除显示符合的行之外,还要显示之前和之后的行 -d :如果要查找的是目录而不是文件时,必须指定这个参数 -E:将样式作为延申的普通标准来使用,grep -E=egrep 基本正则: ^ $ . [ ] 拓展正则:( ) { } ? + | -F :将样式是为固定字符串的列表 grep -F = fgrep (fgrep的用途:因为他不支持正则,所以当我们搜索的字符换内包含了很多特殊字符,而这些特殊字符恰好是正则表达式的预留字符时,我们就可以使用fgrep来避免繁琐的转义了)、 -f :指定规则文件,其内容含有一个或者多个样式,让grep查找符合体哦阿健的文件内容 -i :忽略大小写 -n :显示符合条件的行之前显示行号 -o :只显示符合匹配条件的那一部分 -v :显示不包含匹配文本的所有行 -l :列出文件中符合指定的样式的文件名称 例: 输出12 135 126 110 99 89 8 192中小于126的数 例:12.1.1.2 174.23.34.56 121.100.9.8 192.168.99.1 4.sort命令以行为单位,每行作为一个字符串 按照字符串的比较规则,首字母开始一次向后按照ascii码值进行比较 结果默认升序输出 常用命令选项: -b :忽略每行前面开始的空格字符 -c :检查文件是都按照顺序排序 -d :排序时,处理英文字母、数字及空格字符外,忽略其他的字符 -f :排序时,将小写字母视为大写字母 -m :讲几个排序好的文件进行合并 -n :按照数值的大小进行排序 -u :输出的结果去重 -o :将排序后的结果存入指定的文件 -r :以相反的顺序来排序 -k :指定列进行排序 输出scwebsite.log文件中 ip访问量的前5名 5.uniq命令uniq命令用于检查及删除文本中重复出现的行或列,一般与sort命令结合使用 -c :在每列旁边显示该行重复出现的次数 -d :仅显示重复出现的行列 -f :忽略比较指定的栏位 -u :仅显示出现一次的行列 -w :指定要比较的字符 6.wc命令计算文件的byte数、字数或者是列数 -c :只显示byte数 -l :显示行数 -w :只显示字数 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |