美文网首页
Linux59期day17

Linux59期day17

作者: A宽宽 | 来源:发表于2019-04-18 20:00 被阅读0次

grep 新增参数

grep -l(小写字母L) grep过滤的时候只显示文件名,不显示文件内容
grep -c 统计包含XXX的一共多少行

[root@oldboy59 ~/oldboy]# grep -c 'oldboy' oldboy.txt 
4

grep -R 递归的进行过滤

[root@oldboy59 /oldboy]# grep -Rl 'oldboy'  /etc/  /tmp/
/etc/group
/etc/gshadow
/etc/passwd
/etc/shadow
/etc/hostname

grep -A 显示grep找出的内容及接下来的几行
grep -B 前几行
grep -C 上面几行后面几行

[root@oldboy59 ~/oldboy]# grep -A 2  'linux'  oldboy.txt 
I teach linux.

I like badminton ball ,billiard ball and chinese chess!

sed stream editor 流编辑器 每个文件像一个源源不断的水流(一行接一行)

参数:
-n 取消默认输出
-i 修改文件内容
-i.bak 先备份文件为oldboy.txt .bak 然后修改文件内容

sed 命令执行过程

https://www.processon.com/view/link/5bea32c5e4b0ad314e894f53

功能:
1.查p (print)
根据行号进行查找
[root@oldboy59 /oldboy]# sed -n '5p' lidao.txt
105,feixue,CIO

行号范围 查找1到5行

[root@oldboy59 /oldboy]# sed -n '1,5p' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

使用正则进行过滤 查找有a-z的行

[root@oldboy59 /oldboy]# sed -n '/[a-z]/p' lidao.txt 
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO

找出文件中包含oldboy或yy的行

[root@oldboy59 /oldboy]# sed -nr '/oldboy|yy/p' lidao.txt 
101,oldboy,CEO
104,yy,CFO

使用正则表示范围,从哪行到哪行

[root@oldboy59 /oldboy]# sed -n '/102/,/105/p' lidao.txt 
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

2.增加
a append 追加,在你指定的行后面追加内容
在3行后面加上119,小红,UFO

[root@oldboyedu59 /oldboy]# sed '3a119,xiaohong,UFO'  lidao.txt 
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO

i insert 插入 在你指定的行上面插入信息
c replace 把这一行的内容先清空 然后写入

3.删除 d delete

删除空行

[root@oldboy59 ~/oldboy]# sed  '/^$/d' oldboy.txt
 am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com 
our size is http://blog.oldboyedu.com 
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY! 

不显示空行

[root@oldboy59 ~/oldboy]# sed -n '/^$/!p' oldboy.txt
 am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com 
our size is http://blog.oldboyedu.com 
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!

删除 /oldboy/oldboy.txt中的空行

sed和grep都可以实现

sed命令格式和功能-2019-v2

https://www.processon.com/view/link/5cb7ede9e4b01941c8b13036

4.修改 s sub 格式s#目标#替换为什么#g s替换 g全局替换 sed命令默认替换每一行第一个内容(第一个匹配到的)如果有g则进行全局替换,替换每一行中匹配到的内容

[root@oldboy59 ~/oldboy]# sed 's#oldboy#alex#g' oldboy.txt 
 am alex teacher!
I teach linux.

I like badminton ball ,billiard ball and chinese chess!
my blog is http://alex.blog.51cto.com 
our size is http://blog.alexedu.com 
my qq is 49000448

not 4900000448.
my god ,i am not oldbey,but OLDBOY! 

后向引用

在前面(##)把你要的内容保护起来,在后两个##之间通过\数字来引用
把123456修改为<123456>

[root@oldboy59 ~/oldboy]# echo 123456 |sed -r 's#(.*)#<\1>#g'
<123456>

不显示文件/etc/ssh/sshd_config 的空行或以#号开头的行

sed和grep实现
awk

相关文章

  • Linux59期day17

    grep 新增参数 grep -l(小写字母L) grep过滤的时候只显示文件名,不显示文件内容grep -c ...

  • Longfly的S英语晨读第7期训练Day17 20190115

    Longfly的S英语晨读第7期训练Day17 20190115 材料 It said people should...

  • Linux59期day12

    创建1个新目录他的硬链接数是2? 为何? 在这个目录下面创建1个新目录 /lidao/alex/ lidao目录...

  • Linux59期day05

    了解:/oldboy和/oldboy/ 区别?大部分命令是一样的./oldboy 表示oldboy目录和下面的内...

  • Linux59期day04

    Linux基础操作与命令 快捷键 Ctrl+c 取消当前操作 Ctrl+l 清屏 Ctrl+a 光标移到行首 C...

  • Linux59期day08

    1、vim编辑器的快捷键光标移动操作: l:光标向右移动h:光标向左移动j:光标向下移动k:光标向上移动gg或1G...

  • Linux59期day09

    vim 故障 1.vim 执行过程 2.故障产生原因 a.同时打开一个文件b.之前的文件没有正常保存退出导致的 3...

  • Linux59期day10

    文件类型: 扩展名:.avi .txt .log .shWindows:系统根据不同的扩展名,区分不...

  • Linux59期day03

    什么是救援模式? 解决故障 root密码忘记\服务器无法开机 linux磁盘分区方案 1.通用-数据不重要的时候...

  • Linux59期day02

    什么是操作系统? 人与硬件设备的中介/桥梁 Linux操作系统的组成? 外围应用程序 命令解释器 shell 系...

网友评论

      本文标题:Linux59期day17

      本文链接:https://www.haomeiwen.com/subject/jxoawqtx.html