慕课网链接: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

相应推荐的在线网站:

https://regexr.com/

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

慕课网课程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工具的更多相关文章

  1. Linux - awk 文本处理工具一

    AWK AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一:awk经过改进生成的新的版本nawk,gawk,现在默认linux系统下日常使用的是gawk,用命 ...

  2. Linux - awk 文本处理工具六 - 日志关键字筛选

    查看多少行 ? awk '{print NR}' access.log |tail -n1 日期时间筛选检测 awk '/Dec 10/ {print $0}' /opt/mongod/log/mon ...

  3. Linux - awk 文本处理工具五

    awk 线上处理常用模式 awk 处理复杂日志 6.19: DHB_014_号百总机服务业务日报:广州 到达数异常! DHB_023_号百漏话提醒日报:珠海 到达数异常! 6.20: DHB_014_ ...

  4. Linux - awk 文本处理工具四

    awk 常用示例 获取本机 IP 方式 /sbin/ifconfig |awk -v RS="Bcast:" '{print $NF}'|awk -F: '/addr/{print ...

  5. Linux - awk 文本处理工具三

    AWK 文件打印匹配 格式示例 awk '/Tom/' file # 打印匹配到得行 awk '/^Tom/{print $1}' # 匹配Tom开头的行 打印第一个字段 awk '$1 !~ /ly ...

  6. Linux的文本处理工具浅谈-awk sed grep

    Linux的文本处理工具浅谈 awk   老大 [功能说明] 用于文本处理的语言(取行,过滤),支持正则 NR代表行数,$n取某一列,$NF最后一列 NR==20,NR==30 从20行到30行 FS ...

  7. 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:提供的例子和参数都是最常用和最为实用的: ...

  8. Linux学习grep,sed,awk工具的使用

    1.grep:根据模式搜索文本并将符合模式的文本显示出来(pattern模式:由文本字符和正则表达式元字符所匹配出来的条件) 注:alias grep='grep --color' -c:打印符合要求 ...

  9. AWK文本处理工具(Linux)

    AWK文本处理工具(Linux) PS:刚开始实习,就给了个处理百万级别数据的任务,以前学过SHELL的一些东西sed/awk之类的处理,但是也没有具体的应用,只是在10几行10几列的小数据操作过,所 ...

随机推荐

  1. 编程用sort进行排序,然后从最后一个元素开始判断,去重

    a=[,,,,,,,,,,,,,,] a.sort() last=a[-] ,-,-): if last==a[i]: del a[i] else: last=a[i] print(a)

  2. Java Heap dump文件分析工具jhat简介

    jhat 是Java堆分析工具(Java heap Analyzes Tool). 在JDK6u7之后成为标配. 使用该命令需要有一定的Java开发经验,官方不对此工具提供技术支持和客户服务. 用法: ...

  3. codeforces1187E

    题目链接:http://codeforces.com/problemset/problem/1187/E E. Tree Painting You are given a tree (an undir ...

  4. 查看linux系统版本相关信息

    1.查看内核版本:cat /proc/version A机器 root@debian:~# cat /proc/version Linux version -- (ty@debian) ( (Debi ...

  5. Co-Clustering_Reproducing

    调包一时爽,复现马上躺. Co-Clustering 注意右上角的:"Edit on GitHub",一开始疯狂吐槽没有源码,复现得非常难受,今天刚做完GM05中Algotirhm ...

  6. AWS 配置IPv6

  7. VVDocumenter-Xcode

      从Xcode 5开始,苹果要求加入UUID证书从而保证插件的稳定性.因此Xcode版本更新之后需要在VVDocumenter-Xcode的Info.plist文件中添加Xcode的UUID. 步骤 ...

  8. 使用Docker快速搭建Tensorflow开发环境

    当我刚开始学习使用scikit-learn时,总是会出现各种各样的包依赖问题,兜兜转转了一遍才全部安装好,现在的机器学习算法开发者大都使用tensorflow.pytorch来实现自己的想法,但依然会 ...

  9. (十一)会话跟踪技术之作用域(request、session、servletContext)

    一.作用域范围 Request       保存的键值仅在下一个request对象中可以得到,作用于两个有请求关系的页面 Session        它是一个会话范围,相当于一个局部变量,从Sess ...

  10. 第三方框架MBProgressHUD-----实现各种提示框

    程序运行显示如下 : 点击按钮实现对应的提示框: 这里只截取了其中一张图,有兴趣的可以自己运行程序,查看其他的几种提示框哟!!! 第三方框架MBProgressHUD的下载地址:https://git ...