linux awk和sed工具
慕课网链接:https://www.imooc.com/video/14508
部分示例命令
#替换passwd中的用户名和userid和gid
gsed 's/\(^[a-z_-]\+\):\*:\([0-9]\+\):\([0-9-]\+\):.*$/user:\1 uid:\2 pid:\3/' passwd
#替换出网卡中的ip地址
ifconfig en0 | gsed -n '/inet /p' | gsed 's/inet \([0-9.]\+\) .*$/\1/' #Awk
awk -F ':' '{print $1, $3}' passwd
awk -F ':' '{print "User:"$1,"UID:"$3}' passwd
➜ mac-function-test awk -F ':' '{print NR,NF,FILENAME}' passwd #print和printf
➜ mac-function-test awk -F ':' '{print "Line: "NR, "Col:"Nf,"User:"$1}' passwd
➜ mac-function-test awk -F ':' '{printf("Line:%3s Col:%s User:%s\n",NR,NF,$1)}' passwd
#password文档中用户id大于100的记录
➜ mac-function-test awk -F ':' '{if ($3>100) print "Line: "NR,"User: "$1, "UserId: "$3}' passwd
#打印nginx日志文件中错误发生时间
➜ logs gsed -n '/error/p' error.log | awk '{print $1,$2 }'
打印错误时间方法二
➜ logs awk '/error/{print $1,$2}' error.log
# ~逻辑判断的表达式 !~逻辑判断的表达式 取反 匹配正则表达式
➜ mac-function-test awk -F ':' '$1!~/^e.*/{print $1}' passwd
#userId小于100的数据
➜ mac-function-test awk -F ':' '$3<100{print $1,$3}' passwd #用passwd文件中的3个值做一个统计表
➜ mac-function-test awk -F ':' 'BEGIN{print "Line Col User"}{print NR,NF,$1}END{print"-----"FILENAME"------"}' passwd #当前目录下文件占用的大小
➜ mac-function-test ls -l | awk 'BEGIN{size=0}{size+=$5}END{print " size is " size/1024/1024"M"}'
#统计passwd的账号总人数
➜ mac-function-test awk -F ':' 'BEGIN{count=0}$1!~/^$/{count++}END{print "count = "count}' passwd
#打印用户id大于100的账号
➜ mac-function-test awk -F ':' 'BEGIN{count=0}{if($3> 100) name[count++]=$1}END{for(i=0;i<count;i++)print i,name[i]}' passwd
#统计netstat -anp状态下为ESTABLISHED
将.properties文件中注释的行替换为空
gsed -i 's/^#.*//' needupload.properties
bilibili中不错的视频教程:
https://www.bilibili.com/video/BV1WW411v7PS/?p=11
相应推荐的在线网站:

正则注意贪婪模式和转义符号“\”;



慕课网课程2:https://www.imooc.com/video/7345
linux通配符:*代表匹配任意字符;?代表匹配任意一个字符;[]代表匹配其中的一个字符

➜ mac-function-test touch cangls
➜ mac-function-test touch canyls
➜ mac-function-test ls can?ls
cangls canyls
➜ mac-function-test ls can???
cangls canyls
➜ mac-function-test ls can*
cangls canyls
➜ mac-function-test ls can[gy]ls
cangls canyls
➜ mac-function-test ls can[g]ls
cangls
➜ mac-function-test touc abc
zsh: command not found: touc
➜ mac-function-test touch abc
➜ mac-function-test touch abcd
➜ mac-function-test find . -name abc
./abc
➜ mac-function-test find . -name abc?
./abcd
➜ mac-function-test find . -name "abc*"
./abc
./abc.txt
./abcd
正则中“*”前一个字符匹配0次,或者任意多次
“a*”
#匹配所有内容,包括空白行
“aa*”
#匹配至少包含一个a的行
正则中“.”匹配除了换行符外的任意一个字符
“[]”匹配中括号中指定的任意一个字符,只匹配一个字符
“^[^a-z]”
#匹配不用小写字母开头的行
“^[^a-zA-Z]”
#匹配不用字母开头的行
“\”转移符
“\{n\}”表示其前面的字符恰好出现n次
#例子 匹配2010-09-01
[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}
awk使用print和printf的区别
➜ mac-function-test awk '{printf $2 "\t" $4 "\n"}' student.txt
➜ mac-function-test awk '{print $2 "\t" $4 }' student.txt
➜ mac-function-test df -h | grep '/' | awk '{print $5}' | cut -d "%" -f 1 ➜ mac-function-test cat student.txt
Id name gender mark
1 furong f 85
2 fengj F 60
3 cang F 70
➜ mac-function-test awk '{print $2 "\t" $4}' student.txt
name mark
furong 85
fengj 60
cang 70
➜ mac-function-test awk 'BEGIN{print "test"}{print $2 "\t" $4}' student.txt
test
name mark
furong 85
fengj 60
cang 70
➜ mac-function-test awk 'END{print "test"}{print $2 "\t" $4}' student.txt
name mark
furong 85
fengj 60
cang 70
test ➜ mac-function-test cat passwd|grep /bin/bash
_mbsetupuser:*:248:248:Setup User:/var/setup:/bin/bash
➜ mac-function-test cat passwd|grep /bin/bash |awk '{FS=":"}{print $1 "\t" $3}'
_mbsetupuser:*:248:248:Setup
➜ mac-function-test cat passwd|grep /bin/bash |awk 'BEGIN{FS=":"}{print $1 "\t" $3}'
_mbsetupuser 248
➜ mac-function-test cat student.txt|grep -v name
1 furong f 85
2 fengj F 60
3 cang F 70
➜ mac-function-test cat student.txt|grep -v name | awk '$4>=70{print $2}'
furong
cang ➜ mac-function-test sort -n -t ":" -k 3,3 passwd





linux awk和sed工具的更多相关文章
- Linux - awk 文本处理工具一
AWK AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一:awk经过改进生成的新的版本nawk,gawk,现在默认linux系统下日常使用的是gawk,用命 ...
- Linux - awk 文本处理工具六 - 日志关键字筛选
查看多少行 ? awk '{print NR}' access.log |tail -n1 日期时间筛选检测 awk '/Dec 10/ {print $0}' /opt/mongod/log/mon ...
- Linux - awk 文本处理工具五
awk 线上处理常用模式 awk 处理复杂日志 6.19: DHB_014_号百总机服务业务日报:广州 到达数异常! DHB_023_号百漏话提醒日报:珠海 到达数异常! 6.20: DHB_014_ ...
- Linux - awk 文本处理工具四
awk 常用示例 获取本机 IP 方式 /sbin/ifconfig |awk -v RS="Bcast:" '{print $NF}'|awk -F: '/addr/{print ...
- Linux - awk 文本处理工具三
AWK 文件打印匹配 格式示例 awk '/Tom/' file # 打印匹配到得行 awk '/^Tom/{print $1}' # 匹配Tom开头的行 打印第一个字段 awk '$1 !~ /ly ...
- Linux的文本处理工具浅谈-awk sed grep
Linux的文本处理工具浅谈 awk 老大 [功能说明] 用于文本处理的语言(取行,过滤),支持正则 NR代表行数,$n取某一列,$NF最后一列 NR==20,NR==30 从20行到30行 FS ...
- Linux Shell 文本处理工具集锦--Awk―sed―cut(row-based, column-based),find、grep、xargs、sort、uniq、tr、cut、paste、wc
本文将介绍Linux下使用Shell处理文本时最常用的工具:find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk:提供的例子和参数都是最常用和最为实用的: ...
- Linux学习grep,sed,awk工具的使用
1.grep:根据模式搜索文本并将符合模式的文本显示出来(pattern模式:由文本字符和正则表达式元字符所匹配出来的条件) 注:alias grep='grep --color' -c:打印符合要求 ...
- AWK文本处理工具(Linux)
AWK文本处理工具(Linux) PS:刚开始实习,就给了个处理百万级别数据的任务,以前学过SHELL的一些东西sed/awk之类的处理,但是也没有具体的应用,只是在10几行10几列的小数据操作过,所 ...
随机推荐
- Docker网络原则入门:EXPOSE,-p,-P,-link
如果你已经构建了一些多容器的应用程序,那么肯定需要定义一些网络规则来设置容器间的通信.有多种方式可以实现:可以通过--expose参数在运行时暴露端口,或者在Dockerfile里使用EXPOSE指令 ...
- 将Excel文件导入到Navicat Premium中日期变为0000-00-00
在网上查询了一些文章,说要改excel的单元格格式,我试验了好几次,不管是设置成文本,还是日期,都始终是 0000-00-00. 最后改变了办法,把数据库中的date类型设置 成 varchar,等导 ...
- ngx.shared.DICT.expire 详解
ngx.shared.DICT.expire 原文链接: ngx.shared.DICT.expire syntax: success, err = ngx.shared.DICT:expire(ke ...
- mysql 设置/查看mysql连接数
mysql数据库连接数过多导致系统出错,系统不能连接数据库,关键要看两个数据: 1.数据库系统允许的最大可连接数max_connections.这个参数是可以设置的.如果不设置,默认是100.最大是1 ...
- 使用Docker快速搭建Tensorflow开发环境
当我刚开始学习使用scikit-learn时,总是会出现各种各样的包依赖问题,兜兜转转了一遍才全部安装好,现在的机器学习算法开发者大都使用tensorflow.pytorch来实现自己的想法,但依然会 ...
- osg::NodeVisitor
[1]osg::Group [2]osg::PositionAttitudeTransform [2]osg::MatrixTransform [3]osg::Geode [2]osg::Matrix ...
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_19-认证接口开发-接口开发-controller
补充controller方法 判断是否有值传过来. 私有方法存储cookie httpOnly设置为false的话 浏览器就拿到这个cookie 拿到Response cookie在配置文件内的配置 ...
- Qt编写数据导出到Excel及Pdf和打印数据
一.前言 用Qt开发已经九年了,期间用Qt做过不少的项目,在各种项目中有个功能很常用,尤其是涉及到数据记录存储的项目,那就是需要对查询的数据进行导出到Excel,或者导出到Pdf文件,或者直接打印查询 ...
- 使用Async-profiler 对程序性能优化实战
原文在简书上, https://www.jianshu.com/p/f8336b835978 1.背景 目前有一个kafka消费者工程,此工程会消费kafka中的消息,并通过fastjson解析该消息 ...
- 偶尔在网上看到的,相对比较好的c#端订单号生成规则
偶尔在网上看到的,相对比较好的c#端订单号生成规则 public class BillNumberBuilder{ private static object locker = new obj ...