sort排序
sort参考 https://www.jianshu.com/p/c4d159a98dd8
sort [-bcdfimMnr] [-o<输出文件>] [-t<分隔字符>] [+<起始栏位>-<结束栏位>] [--help][--verison] [文件]
简单常用:
-t<分隔字符>:指定分隔符,默认的分隔符为空白字符和非空白字符之间的空字符
-f:将小写字母视为大写字母
-k:以哪个区间 (field) 来进行排序
-n:依照数值的大小排序 -1n -2n
-o<输出文件>:将排序后的结果存入指定的文件
-r:降序
其他:
-b:忽略每行前面开始的空格字符,空格数量不固定时,该选项几乎是必须要使用的("-n"选项隐含该选项,测试发现都隐含)
-c:检查文件是否已经按照顺序排序,如未排序,会提示从哪一行开始乱序
-C:类似于"-c",只不过不输出任何诊断信息。可以通过退出状态码1判断出文件未排序
-d:只处理英文字母、数字及空格,忽略其他的字符
-h:使用易读性数字(例如:2K、1G)
-i:除了040至176之间的ASCII字符外(八进制0-177),忽略其他的字符(忽略无法打印的字符如退格/换页键/回车)
-m:将几个排序好的文件进行合并,只是单纯合并,不做排序
-M:将前面3个字母依照月份的缩写进行排序
-u:忽略相同行
- -k详解
[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
– FStart,从第几列开始
– .CStart,从该列第几个字符开始
– Modifier,只n、r等其他参数
– FEnd,到第几列结束
– .CEnd,到该列第几个字符结束
– 对第三列排列,按ASCII
sort -t $’\t’ -k 3 sort.log
–加n后,按照数值排序
sort -t $’\t’ -k 3n sort.log
awk根据内容分析并处理
- 一行一行,一行分成数个字段分析处理,默认分隔符是空格键或tab键
- 可读取前一个指令的 standard input
awk '条件类型1{动作1}条件类型2{动作2}' filename
- 3个变量,
- NF: 每一行处理的字段数
- NR 目前处理到第几行
- FS 目前的分隔符
- 逻辑判断 > < >= <= == !== , 赋值=
- BEGIN END
- BEGIN之后列出的操作在{}内将在awk开始扫描输入之前执行
- END{}内的操作, 将在扫描完输入文件后执行
- {}内, 可以使用 if else ,for(i=0;i<10;i++), i=1 while(i<NF)
可见, awk的很多用法都等同于C语言, 比如"\t" 分隔符, print的格式, if, while, for 等等 - $0 代表整行, $1代表第一个区域, $2代表第二个区域…
sed编辑
- 以行为单位的文本编辑工具
- 可以分析 standard input
sed [-nef] '[动作]' [输入文本]
- -n : 安静模式, 一般sed用法中, 来自stdin的数据一般会被列出到屏幕上, 使用-n参数后, 只有经过sed处理的那一行被列
- -e : 多重编辑, 比如你同时又想删除某行, 又想改变其他行
-f : 首先将 sed的动作写在一个档案内, 然后通过 sed -f scriptfile 就可以直接执行 scriptfile 内的sed动作
-i : 直接编辑
- a 新增, a 后面可以接字符串, 而这个字符串会在新的一行出现. (下一行)
- c 取代, c 后面的字符串, 这些字符串可以取代 n1,n2之间的行
- d 删除, 后面不接任何东西
‘1d’ ‘2,$d’ ‘$d’ - i 插入, 后面的字符串, 会在上一行出现
- p 打印, 将选择的资料列出, 通常和 sed -n 一起运作 sed -n ‘3p’ 只打印第3行
- s 取代, 类似vi中的取代, 1,20s/old/new/g
- '/word/'带word的行
- q r w
grep查找截取
grep [option] pattern file
- 参数
-c : 只输出匹配的行
-i : 不区分大小写
-h : 查询多文件时不显示文件名
-l : 查询多文件时, 只输出包含匹配字符的文件名
-n : 显示匹配的行号及行
-v : 显示不包含匹配文本的所有行(我经常用除去grep本身)
grep -E主要是用来支持扩展正则表达式,比如|、&这些符号,用于grep多条件查询,并非是使用标准正则表达式。
在shell下面man grep看了下,加上-P(使用Perl的正则引擎)即可过滤出目标数据
但是在MAC OS下面man grep是没有-P参数的,因为新的主流正则引擎已经默认加上了-P参数了
作者:Zey
链接:https://www.jianshu.com/p/e1acfb7989b2
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。