企业面试题-利用三剑客
程序员文章站
2022-10-18 10:21:01
题:只看ett.txt文件(100行)内第20行到第30行的内容 ......
题:只看ett.txt文件(100行)内第20行到第30行的内容
解答:squence==seq序列 生成ett文件 [root@tan data]# seq 100 >ett.txt [root@tan data]# cat ett.txt
生成从1开始的10个数【1-10】,默认间隔为1: [root@tan data]#seq 10 生成【3-10】: [root@tan data]# seq 3 10 【1-10】公差为2的数 [root@tan data]# seq 1 2 10 【1-10】公差为的数 [root@tan data]# seq 1 3 10
[root@tan data]# head -30 ett.txt|tail -11 前30行里面的后11行(太low) [root@tan data]# sed -n '20,30'p ett.txt 这个命令更有效率,要记住 [root@tan data]# awk '{if(nr<31 && nr>19) printf $0"\n"}' ett.txt [root@tan data]# awk '19<nr && nr<31' ett.txt
head 头,头部 读取文件的前n行,默认前10行,-n 数字,习惯-5,忽略-n sed【三剑客老二】 stream editor 流编辑器,实现对文件的增删改查替换
选项 | 功能 |
-e | 允许多项编辑 |
-f | 后接sed脚本的文件名 |
-n | 取消默认输出 |
-i | 修改文件内容 |
g | 与s联合使用时,表示对当前行全局匹配替换 |
s | 常说的查找并替换,用一个字符串替换成另一个 |
sed '20,30p' ett.txt 不加-n会全部打印出来 -n作用:取消默认输出,按照规则打印想要的内容【就是我用sed时,不要都给我输出出来,我要啥,你给我啥】 p:是print,打印 打印最后一行: [root@tan data]# sed -n '$'p ett.txt $是结尾的意思
'20,30':引号一定要加 打印一行: [root@tan data]# sed -n '20'p ett.txt
awk【三剑客老大】 过滤、输出内容,本身还是一门语言。nr:行号 [root@tan data]# awk 'nr==31' ett.txt
== :等于,表判断 && :意思是并且,两边同时成立 = :赋值 grep【三剑客老三】过滤需要的内容,-v排除内容,列子grep -v oldboy test.txt #context control: -b【brfore】 除了显示匹配的一行之外,并显示该行之前的num行 -a【after】 除了显示匹配的一行之外,并显示该行后的num行 -c【context,上下文即前后】 除了显示匹配的一行之外,并显示该行之前后各num行 [root@tan data]# grep 25 -c 5 ett.txt [root@tan data]# grep 20 -a 10 ett.txt [root@tan data]# grep 30 -b 10 ett.txt
上一篇: Ubuntu下配置jdk和tomcat
下一篇: [WC2008] 游览计划