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.其它命令

  1. 统计文本文件行数
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
  1. more /less /head

linux -- 三剑客 |grep - sed -awk相关推荐

  1. 15分钟搞定Linux三剑客 grep sed awk

    剑客grep 来者何人 grep是linux上的字符串搜索匹配命令.这个名字来自于linux编辑器vim的一个命令g/re/p,表示全局匹配某个正则表达式并打印出来,这也体现了grep自身的功能. 基 ...

  2. Linux三剑客 grep sed awk 详细使用方法

    Linux中最重要的三个命令在业界被称为"三剑客",它们是awk,sed,grep. 我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文 ...

  3. Shell ❀ 三剑客 - Grep + Sed + Awk

    文章目录 八.三剑客 - Grep + Sed + Awk 1.Grep - 过滤 1.1 常用grep参数 1.2 使用方法 2.Sed - 行匹配 2.1 执行原理 2.2 常见语法 2.3 使用 ...

  4. 三剑客grep sed awk

    三剑客 正则(RE)表达式 应用场景 规则 注意事项 正则符号 基础正则 扩展正则 正则实例 正则 VS 通配符 三剑客 grep sed sed核心应用 awk awk执行过程 内置变量 awk 正 ...

  5. Linux高级专题详解--shell编程大全(shell变量,if语句,case语句,for循环,while循环,函数调用,数组,正则表达式,shell脚本三剑客--grep,sed,awk家族)

    shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...

  6. 深入浅出linux三剑客之sed必杀技一例

    缘起:上完培训课后,同学们对sed加正则处理问题的热情高涨,氛围相当好,但是,有个别同学还是有些晕乎,因此,撰写此文.此例如果搞熟练了,sed和正则的大部分常用技术你掌握起来就简单了. 如果还有不会的 ...

  7. linux三剑客及正则表达(grep,sed,awk)

    首先我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文件呢?这就要用到我们上面的三剑客命令. 在说这三个命令前我们要插入一个小插曲就是"正则表达式 ...

  8. linux grep sed awk

    linux 文本编辑命令grep sed awk(转)     grep grep (global search regular expression(RE) and print out the li ...

  9. Linux实战教学笔记12:linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

  10. 正则表达式与扩展正则表达式(grep, sed, awk)

    Linux中用来在文件中搜索字符串的命令,如grep, sed, awk等命令支持正则表达式与扩展正则表达式. 1. 基础正则表达式 符号 解释 示例 * 匹配0次或多次 b.*t . 匹配任意字符 ...

最新文章

  1. tensorflow 线性回归
  2. 年月跨度_预应力跨度国内第一!1850吨146米跨度钢结构整体拔高22米!
  3. python基础语法合集-Python基础语法介绍
  4. 点到点链路上的ospf
  5. [九度][何海涛] 跳台阶
  6. hive插入数据:FAILED: ParseException line 1:12 missing TABLE at 'student' near 'EOF'
  7. 拦截器如何获取@requestbody_分布式系统中如何优雅地追踪日志(原理篇)
  8. 程序员必读的涨薪指南
  9. VPC-阿里云专有网络 Virtual Private Cloud
  10. 大话项目管理工具之Confluence篇
  11. Spring mvc 转发
  12. 7. Flask 大型程序的结构
  13. 翻译:《CSS权威指南》(第3版)-概览和目录部分
  14. Java 9 的 9 个特性
  15. 计算机部分应用显示模糊,win10系统打开部分软件字体总显示模糊的解决方法
  16. linux跨平台通信软件,下载:跨平台即时通信工具Pidgin 2.7.5
  17. JQ实现谷歌小恐龙小游戏
  18. 【泛微系统】OA系统集成echart插件,自定义图表demo实例
  19. 谈一谈自动化测试的统筹规划
  20. 什么是域名劫持?遇到域名劫持要怎么处理

热门文章

  1. substring substr slice 区别
  2. C++ Primer 笔记——嵌套类 局部类
  3. 判断触摸的点在那个 View上
  4. JavaWeb学习--Servlet认识
  5. 丽江,是否一群失意的人聚合地
  6. ubuntu下安装php的curl扩展
  7. SetMutableGraph
  8. ASP.NET DEMO Ⅳ : 使用数据源控件将数据绑定到 ListControl 上
  9. 警告:Vista存高风险 不宜过早安装
  10. 计算机网络性能(2)