linux操作-三剑客

grep(查询)

grep -E //正则查询

// 实现or查询
grep -E ‘条件1|条件2’

sed (编辑)

sed -i ‘s/pattern/replace/g’ file // 全局替换pattern->replace
sed -e ‘/pattern/w outfile’ file // file里符合pattern的行写入outfile

awk (计算/过滤)

1、awk -F: ‘{print $0}’ file // 打印每一行
2、awk ‘BEGIN{count=0;print “初始化用户数”,count} {count++;print $0} END{print “总用户数”,count}’ file // 初始化变量count=0,每行输出整行,count+1,结束输出count数
3、awk ‘{gsub(/root/,"@@");print $0}’ passwd3 // 替换所有passwd3中root->@@

参考博文
在这里插入图片描述
常用NF 字段 NR当前记录行号

条件操作符

<、<=、==、!=、>=、匹配正则表达式、!不匹配正则表达式

匹配:awk ‘{if ($4~/ASIMA/) print $0}’ temp 表示如果第四个域包含 ASIMA,就打印整条

精确匹配:awk ‘$3==“48” {print $0}’ temp 只打印第 3 域等于"48"的记录

不匹配: awk ‘$0 !~ /ASIMA/’ temp 打印整条不包含 ASIMA 的记录

不等于: awk ‘$1 != “asima”’ temp

小于: awk ‘{if ($1<$2) print $1 “is smaller”}’ temp

设置大小写: awk ‘/[Gg]reen/’ temp 打印整条包含 Green,或者 green 的记录

任意字符: awk ‘$1 ~/^…a/’ temp 打印第 1 域中第四个字符是 a 的记录,符号’^’代表行首,符合’.’代表任意字符

或关系匹配: awk ‘$0~/(abc)|(efg)/’ temp 使用|时,语句需要括起来

AND 与关系: awk ‘{if ( $1==“a” && $2==“b” ) print $0}’ temp

OR 或关系: awk ‘{if ($1==“a” || $1==“b”) print $0}’ temp

  • 可以起手一个正则进行过滤
    在这里插入图片描述
  • 小括号跟END直接必须以分号":"连接,并且每一行都会被输出
    在这里插入图片描述
  • 可以通过命令行向awk传递变量(类似begin声明变量)
    在这里插入图片描述
  • 可以像go等语言里的hashmap方式声明数据
    在这里插入图片描述
  • awk ‘gsub(/total/,“total2”,$0)’ file 只输出替换成功的行,awk ‘{gsub(/total/,“total2”,$0);print $0}’ file 会输出所有行;
    awk ‘gsub(/total/,“total2”,$0)’ file 等同于 awk ‘{if(gsub(/total/,“total2”,$0)) print $0}’

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • gsub 返回1,0
    在这里插入图片描述

  • match 返回1,0
    在这里插入图片描述

  • index 返回位置
    在这里插入图片描述

  • sub 返回1,0
    在这里插入图片描述

  • substr 截取 开始位置到结束位置的字符串
    在这里插入图片描述

  • 可以使用for while do/while语法

其它查询相关命令

1、cut 按
字符切割
实例 cut -c 9-15

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值