码迷,mamicode.com
首页 > 系统相关 > 详细

Linux-35-liunx基础重要命令12(L005-17)

时间:2016-05-06 12:37:55      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

详解awk命令(接11):

1.命令1:awk  ‘{if (NR>19&&NR<31) print  $0}’  ett.txt

其中NR是行号,$0表示所有行内容(如果只输出第一行就是$1,第二行就是$2……所有行就是$0),所以该命令就是先筛选出ett.txt文件内行号大于19而且行号小于31的所有行,然后输出整行,


技术分享


2.命令2:awk  ‘{if(NR==19) print  $0}’  ett.txt

打印输出ett.txt文件中第19行内容,


技术分享


sedawk总结】

sed擅长打印输出行

awk擅长打印输出列

 

12.将linux系统根目录及其子目录下所有名称为ett.txt的文件中包含haha的字符串全部替换为xixi。

解答:

(1)将字符串haha追加到ett.txt中,


技术分享


查看ett.txt文件内容,发现原来的1~100自然数序列没了,现在只有字符串haha,


技术分享


将ett.txt文件拷贝到/etc目录和/opt目录下,


技术分享


那么此时linux系统内一共有3个ett.txt文件(根目录下1个,/etc目录下1个,/opt目录下1个,一共3个),

 

(2)采用sed  s#haha#xixi#g ett.txt命令修改,其中s表示编辑替换,g表示全部替换,前两个#之间是待修改内容,后两个#之间是修改结果,即#待修改内容#修改结果#,


技术分享


查看ett.txt文件,


技术分享


发现上面只是改了打印输出内容,而原文件里面内容没有修改,

 

(3)只需要在上面命令加上-i即可,-i表示修改文件内容,即用如下命令:

sed  -i s#haha#xixi#g  ett.txt


技术分享


查看ett.txt文件,


技术分享


发现ett.txt文件内容已被修改,

 

(4)如何将linux系统内的3个ett.txt一起修改内容呢?可以借助find命令,首先我们用find命令从根目录开始查找所有文件名为ett.txt的文件,


技术分享


(5)综上,本题答案为:

find / -type f –name “ett.txt” | xargs sed –i s#haha#xixi#g


技术分享


其中管道|之前是从根目录开始查找出当前系统内所有名称为ett.txt的文件,管道|之后是将查询到的所有文件中haha改为xixi,

查询修改结果,


技术分享


修改成功。

Linux-35-liunx基础重要命令12(L005-17)

标签:

原文地址:http://blog.csdn.net/wy_0928/article/details/51329622

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!