当前位置: 移动技术网 > 科技>操作系统>Linux > 企业面试题-利用三剑客

企业面试题-利用三剑客

2019年04月02日  | 移动技术网科技  | 我要评论

题:只看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
 

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网