linux -- 三剑客 |grep - sed -awk
linux shell终端最常用的三个命令
#!/bin/bashcat access.log | while read line; do
# 用 cut 方式取得每一行的时间,并赋予变量t=$(echo $line | awk {'print $1'})t1=$(echo $line | awk {'print $1'})echo $t, $t1 >> new.log
done
1.grep
1.1 查看匹配行
grep -C 5 'parttern' inputfile //打印匹配行的前后5行 --- continue
grep -A 5 'parttern' inputfile //打印匹配行的后5行 ---- after
grep -B 5 'parttern' inputfile //打印匹配行的前5行 --- before
2. sed
2.1 在某一行后面添加新行
sed -e 4a\newline testfile #使用sed 在第四行后添加新字符串
HELLO LINUX! #testfile文件原有的内容
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test
newline
2.2 删除文件的第二行到第五行
[root@www ~]# nl /etc/passwd | sed '2,5d'
1 root:x:0:0:root:/root:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
只要删除第 2 行
nl /etc/passwd | sed '2d'
要删除第 3 到最后一行
nl /etc/passwd | sed '3,$d'
在某一行后面添加新行
[root@www ~]# nl /etc/passwd | sed '2a drink tea'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
drink tea
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
2.3 搜索含有某个关键字的行
搜索 /etc/passwd有root关键字的行nl /etc/passwd | sed '/root/p'
1 root:x:0:0:root:/root:/bin/bash
1 root:x:0:0:root:/root:/bin/bash
2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3 bin:x:2:2:bin:/bin:/bin/sh
4 sys:x:3:3:sys:/dev:/bin/sh
5 sync:x:4:65534:sync:/bin:/bin/sync
....下面忽略
如果root找到,除了输出所有行,还会输出匹配行。使用-n的时候将只打印包含模板的行。nl /etc/passwd | sed -n '/root/p'
1 root:x:0:0:root:/root:/bin/bash
2.4 删除包含有该字段的行
删除/etc/passwd所有包含root的行,其他行输出nl /etc/passwd | sed '/root/d'
2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3 bin:x:2:2:bin:/bin:/bin/sh
....下面忽略
#第一行的匹配root已经删除了
2.5 删除某一区间行、将搜索到的关键字替换
多点编辑
一条sed命令,删除/etc/passwd第三行到末尾的数据,并把bash替换为blueshell
nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'
1 root:x:0:0:root:/root:/bin/blueshell
2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
-e表示多点编辑,第一个编辑命令删除/etc/passwd第三行到末尾的数据,第二条命令搜索bash替换为blueshell。
3. awk
3.1 以冒号分割并打印第一列
awk -F : '{ print $1 }' /etc/passwd 输出为 :
root
bin
daemon
3.2 显示/etc/passwd的第1列和第7列,用逗号分隔显示,所有行开始前添加列名start1,start7,最后一行添加,end1,end7
awk -F ':' 'BEGIN {print "start1,start7"} {print $1 "," $7} END {print "end1,end7"}' /etc/passwd
输出为 :
start1,start7
root,/bin/bash
bin,/sbin/nologin
3.3统计/etc/passwd文件中,每行的行号,每行的列数,对应的完整行内容
awk -F : ‘{ print NR " " NF " " $0 }’ /etc/passwd
NF 浏览记录的字段个数
NR 已读的记录数
输出为
1 7 root:x:0:0:root:/root:/bin/bash
2 7 bin:x:1:1:bin:/bin:/sbin/nologin
3.4 支持条件操作,正则表达式匹配
显示/etc/passwd中有daemon的行
awk -F ':' '$0 ~ /daemon/' /etc/passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
3.5 awk -F ‘:’ ‘{ if ($1 > “d”) { print $1 } else { print “-” } }’ /etc/passwd
root
-
daemon
-
lp
3.6 批量杀死进程
ps -aux | grep nginx | grep -v grep | awk '{print $2}' | xargs kill -9
execpath=$(cd "$(dirname "$0")"; pwd)
echo "current executed path is : ${execpath}"
cd ${execpath}
killname=mongo
echo "before status"
ps -elf | grep ${killname} | grep -v grep
echo "before status"
PROCESS=`ps -ef|grep ${killname} | grep -v grep | grep -v PPID|awk '{print $2}'`
for i in $PROCESS
doecho "Kill the process [ ${killname} ]"kill -9 ${i}
done
echo "after status"
ps -elf | grep ${killname} | grep -v grep
echo "after status"
4.其它命令
- 统计文本文件行数
wc -l test1.txt
2.uniq -c, --count #在每行前显示该行重复次数,只统计前后相邻
eg:
this is a test
this is a test
this is a test
i am tank
i love tank
i love tank
this is a test
whom have a try
WhoM have a try
you have a try
i want to abroad
those are good men
we are good men
sort filename 统计文本文件每行出现的次数
以上两个命令一般同时使用
sort bb.txt | uniq -c
效果如下:
1 i am tank
2 i love tank
1 i want to abroad
4 this is a test
1 those are good men
1 we are good men
1 whom have a try
1 WhoM have a try
1 you have a try
- more /less /head
linux -- 三剑客 |grep - sed -awk相关推荐
- 15分钟搞定Linux三剑客 grep sed awk
剑客grep 来者何人 grep是linux上的字符串搜索匹配命令.这个名字来自于linux编辑器vim的一个命令g/re/p,表示全局匹配某个正则表达式并打印出来,这也体现了grep自身的功能. 基 ...
- Linux三剑客 grep sed awk 详细使用方法
Linux中最重要的三个命令在业界被称为"三剑客",它们是awk,sed,grep. 我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文 ...
- Shell ❀ 三剑客 - Grep + Sed + Awk
文章目录 八.三剑客 - Grep + Sed + Awk 1.Grep - 过滤 1.1 常用grep参数 1.2 使用方法 2.Sed - 行匹配 2.1 执行原理 2.2 常见语法 2.3 使用 ...
- 三剑客grep sed awk
三剑客 正则(RE)表达式 应用场景 规则 注意事项 正则符号 基础正则 扩展正则 正则实例 正则 VS 通配符 三剑客 grep sed sed核心应用 awk awk执行过程 内置变量 awk 正 ...
- Linux高级专题详解--shell编程大全(shell变量,if语句,case语句,for循环,while循环,函数调用,数组,正则表达式,shell脚本三剑客--grep,sed,awk家族)
shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...
- 深入浅出linux三剑客之sed必杀技一例
缘起:上完培训课后,同学们对sed加正则处理问题的热情高涨,氛围相当好,但是,有个别同学还是有些晕乎,因此,撰写此文.此例如果搞熟练了,sed和正则的大部分常用技术你掌握起来就简单了. 如果还有不会的 ...
- linux三剑客及正则表达(grep,sed,awk)
首先我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文件呢?这就要用到我们上面的三剑客命令. 在说这三个命令前我们要插入一个小插曲就是"正则表达式 ...
- linux grep sed awk
linux 文本编辑命令grep sed awk(转) grep grep (global search regular expression(RE) and print out the li ...
- Linux实战教学笔记12:linux三剑客之sed命令精讲
第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...
- 正则表达式与扩展正则表达式(grep, sed, awk)
Linux中用来在文件中搜索字符串的命令,如grep, sed, awk等命令支持正则表达式与扩展正则表达式. 1. 基础正则表达式 符号 解释 示例 * 匹配0次或多次 b.*t . 匹配任意字符 ...
最新文章
- tensorflow 线性回归
- 年月跨度_预应力跨度国内第一!1850吨146米跨度钢结构整体拔高22米!
- python基础语法合集-Python基础语法介绍
- 点到点链路上的ospf
- [九度][何海涛] 跳台阶
- hive插入数据:FAILED: ParseException line 1:12 missing TABLE at 'student' near 'EOF'
- 拦截器如何获取@requestbody_分布式系统中如何优雅地追踪日志(原理篇)
- 程序员必读的涨薪指南
- VPC-阿里云专有网络 Virtual Private Cloud
- 大话项目管理工具之Confluence篇
- Spring mvc 转发
- 7. Flask 大型程序的结构
- 翻译:《CSS权威指南》(第3版)-概览和目录部分
- Java 9 的 9 个特性
- 计算机部分应用显示模糊,win10系统打开部分软件字体总显示模糊的解决方法
- linux跨平台通信软件,下载:跨平台即时通信工具Pidgin 2.7.5
- JQ实现谷歌小恐龙小游戏
- 【泛微系统】OA系统集成echart插件,自定义图表demo实例
- 谈一谈自动化测试的统筹规划
- 什么是域名劫持?遇到域名劫持要怎么处理