DAY15课堂笔记

第一章

sed

-i 插入内容,插入第几行就在第几行

[root@shizhenghao ~]# sed '1i 1' 1.txt

1

PROXY_METHOD=none

-a 在下一行追加内容

[root@shizhenghao ~]# sed '1a 3' 1.txt

PROXY_METHOD=none

3

用\n ,可追加行数,\n是分隔行的意思

[root@shizhenghao ~]# sed '1a 3\na' 1.txt

PROXY_METHOD=none

3

a

删除第一行内容

[root@shizhenghao ~]# sed -i '1d' 1.txt

方法:要取一个目标,删除两边的目标,就得到了结果

[root@shizhenghao ~]# stat /etc/hosts

  文件:"/etc/hosts"

  大小:158      块:8          IO 块:4096  普通文件

设备:fd00h/64768d Inode:16793700    硬链接:1

权限:(0644/-rw-r--r--)  Uid:(    0/    root)  Gid:(    0/    root)

最近访问:2019-03-19 17:00:27.047999935 +0800

最近更改:2013-06-07 22:31:32.000000000 +0800

最近改动:2019-02-28 01:44:52.916008285 +0800

创建时间:-

[root@shizhenghao ~]# stat /etc/hosts|sed -rn 's#^.*\(0(.*)/-rw.*$#\1#gp'

644

第二章

awk

awk 是命令行操作也可以作为编程语言,处理字符串

三剑客自身有特长的:

grep 过滤查找内容。筛子

sed 取行,替换,删除,追加

awk 取列

awk语法

awk   参数      '条件 动作‘      文件

参数 :-F

空格 是默认分隔符

cut  按列切割

-d  指定分隔符  

-f     指定哪列,多列用逗号,

[root@shizhenghao ~]# cat zh.txt

1 2 3 4 5 6 7 8 9

[root@shizhenghao ~]# cut -d" " -f1,3 zh.txt

1 3

[root@shizhenghao ~]# cut -d" " -f1-3 zh.txt

1 2 3

-c 按字符取内容

[root@shizhenghao ~]# cat b.txt

oldboy 49000448

[root@shizhenghao ~]# cut -c1-6,8-10 b.txt

oldboy490

-F 指定分隔符

[root@shizhenghao ~]# awk -F ":" '{print $3,$5}' 5.txt

0 root

1 bin

2 daemon

3 adm

4 lp

列:$1第一列   $2 第二列  ....

$0 整行

$NF 最后一列,倒数第一列

$(NF-1)倒数第二列

练习打印 1 3 和最后一列:

[root@shizhenghao ~]# awk -F ":" '{print $1,$3,$NF}' 5.txt

root 0 /bin/bash

bin 1 /sbin/nologin

daemon 2 /sbin/nologin

adm 3 /sbin/nologin

lp 4 /sbin/nologin

NR   行号

问题:取5.txt文件的第二行到第三行的内容。

[root@shizhenghao ~]# awk 'NR>1&&NR<4' 5.txt

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@shizhenghao ~]# awk 'NR==2,NR==3' 5.txt

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

过滤出含有root字符串的行:

[root@shizhenghao ~]# awk '/root/' 5.txt

root:x:0:0:root:/root:/bin/bash

删除含有root字符串的行:

[root@shizhenghao ~]# awk '/^[^r]/' 5.txt

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

【^r】非r

^【^r】以非r字符开头

取文件的1,3,和最后一列

[root@shizhenghao ~]# awk -F ":" '{print NR,$1,$3,$NF}' 5.txt

1 root 0 /bin/bash

2 bin 1 /sbin/nologin

3 daemon 2 /sbin/nologin

4 adm 3 /sbin/nologin

5 lp 4 /sbin/nologin

取linux系统中的ip地址:

[root@shizhenghao ~]# ifconfig eth0|awk 'NR==2{print $2}'

10.0.0.101

你可能感兴趣的:(DAY15课堂笔记)