Linux-35-liunx基础重要命令12(L005-17)
2016-05-06 10:44
369 查看
详解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行内容,
【sed和awk总结】
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,
查询修改结果,
修改成功。
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行内容,
【sed和awk总结】
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,
查询修改结果,
修改成功。
相关文章推荐
- centos6.3下安装中文输入法
- Linux 安装lxml及各种问题的解决
- Linux防火墙的关闭和开启
- linux xargs命令及find命令
- centos 7访问windows共享文件夹
- CentOS 6.5下yum安装 MySQL-5.5全过程图文教程
- Linux-34-linux基础重要命令11(L005-16)
- CentOS6.5上安装Python2.7和PIP
- linux cat命令详解
- Linux下安装使用Mutt邮件客户端并配置邮件警报功能
- Linux-33-linux基础重要命令10(L005-15)
- 161 linux mysql mysqld.sock找不到
- Linux-32-linux基础重要命令09(L005-14)
- linux建立信任关系
- Linux-31-linux基础重要命令08-(L005-13)
- centos6.5升级安装openssl1.0.2h
- linux 匹配查询列表中包含某一特殊字符的所有行中的某一列
- 深入理解SELinux
- Linux-30-linux基础重要命令07(L005-12)
- Linux-29-linux基础重要命令06(L005-11)