课学笔记day15

内置符sed

a  追加指定行后加文件内容

例:sed -i "4a 2222" oldgirl.txt 4行后加

i 追加指定行前加文件内容

例:sed -i "4i 2222" oldgirl.txt 4行前加

正则是贪婪匹配模式

例:stat /etc/hosts|sed -n 4p|sed 's#^.*: (0##g'|sed 's#/-.*##g'

      stat /etc/hosts | sed -rn '4s#^.*0(.*)/-rw.*$#\1#gp'

sed 输出加 np

ifconfig eth0|sed -nr '2s#^.*inet (.*)  netm.*$#\1#gp'

-n取消默认输出 -r可以用扩展正则  因为后面有扩展正则符  \1=(.*)=ip

活动:象棋 踢键子

grep 过滤查找内容

sed 取行

cut 按列切割

-c 按字符取内容

cut -c8- test.txt 第八个字符起到最扣

-f 指定列

cut -d" " -f"1,3" test.txt

-d 指定分隔符

awk特长,取列

它不仅是命令还是一种编程语言,处理字符串

语法 awk  awk参数  条件{动作}  文件

参数:-F 指定字段分隔符=cut-d

$NF最后一列

awk -F ":" '{print $NF}' oldboy.txt

$0 当前整行

awk -F ":" '{print $0}' oldboy.txt

$1第一列,$2第二列

awk -F ":" '{print $1}' oldboy.txt

NR 已经读出的记录数,就是行号,从1开始

awk -F ":" '{print NR}' oldboy.txt

awk -F ":" '{print NR}' oldboy.txt  显示行号

awk 'NR>1&&NR<4' oldboy.txt取2-3行内容

awk '/root/' oldboy.txt

grep root oldboy.txt过滤root

awk '/^[^r]/' oldboy.txt 删除root的行,//里面是字符串

awk -F ":" '{print $1,$3,$NF,NR}' oldboy.txt|cat -n  取文件13最后一列

ifconfig eth0|awk 'NR==2{print $2}' 打印第二列只能输出IP

ifconfig eth0|awk -F "[: ]+"'NR==2{print $4}'  过滤文件中第一列内容匹配root的字符串,把符合的行的最后一列输出

问题1:取test.txt文件的第2行到第3行的内容。

问题2:过滤出含有root字符串的行※。

问题3:删除含有root字符串的行※。

问题4:取文件的第一列、第三列和最后一列内容,并打印行号※。

问题5:取出Linux中执行ifconfig eth0后对应的IP地址(只能输出IP地址)。

问题6:过滤文件中第一列内容匹配root的字符串,把符合的行的最后一列输出

参数:-v 指定字段分隔符

你可能感兴趣的:(课学笔记day15)