2019-03-20 day15 课后笔记 sed与awk

sed实践

一、环境:

问题1:输出oldboy.txt的第2-3行内容※。

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

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

问题4:将文件中的oldboy字符串全部替换为oldgirl※。

问题5:将文件中的oldboy字符串全部替换为oldgirl,同时将QQ号码49000448改为31333741

问题6:在oldboy.txt文件的第2行后追加文本。

问题7:在oldboy.txt文件的第2行插入文本。

删除指定行:sed -i '3d' data.txt

二、环境

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

方法一:ifconfig eth0|sed -n 2p|sed 's#^.*inet ##g'|sed 's#netm.*$##g'

方法二:ifconfig eth0|sed -n 2p|sed -e 's#^.*inet ##g' -e 's#netm.*$##g'

方法三:ifconfig eth0|sed -ne 's#^.*inet ##g' -e 's# netm.*$##gp'

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

三剑客自身的特长:

grep                    过滤查找内容

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

awk                    取列

cut (按列切割)

-d 指定分隔符            -f    指定哪列,多列用逗号

awk

语法:

awk   [option]       'pattern[action]'    file ...

awk    [参数]         '条件[动作]'        文件 ...

参数:-F 指定分隔符

awk命令的常用变量及说明

$0             当前整行记录

$n             当前记录的第n个列,字段间由FS或-F参数指定分隔符

NF            当前记录中的列的个数,就是有多少列

$(NF-n)   倒数第n列,n为数字

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

实践:、

环境:

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

方法一:awk 'NR==2,NR==3' oldboy.txt

方法二:awk 'NR>1&&NR<4' oldboy.txt

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

方法一:awk '/root/' oldboy.txt 

方法二:grep root oldboy.txt

方法三:sed -n '/root/p' oldboy.txt

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

方法一:awk '/^[^r]/' oldboy.txt

方法二:sed '/root/d' oldboy.txt

方法三:grep -v 'root' oldboy.txt

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

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

 ifconfig eth0|awk 'NR==2{print $2}'

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

问题7:过滤下列test1.txt文件中第三列内容分数大于70,并且小于95的人名和性别。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容