Linux-35-liunx基础重要命令12(L005-17)
来源:互联网 发布:好看的印度电影知乎 编辑:程序博客网 时间:2024/05/29 05:56
详解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,
查询修改结果,
修改成功。
- Linux-35-liunx基础重要命令12(L005-17)
- Linux-30-linux基础重要命令07(L005-12)
- Linux-24-linux基础重要命令01(L005-06)
- Linux-25-linux基础重要命令02(L005-07)
- Linux-26-linux基础重要命令03(L005-08)
- Linux-27-linux基础重要命令04(L005-09)
- Linux-28-linux基础重要命令05(L005-10)
- Linux-29-linux基础重要命令06(L005-11)
- Linux-31-linux基础重要命令08-(L005-13)
- Linux-32-linux基础重要命令09(L005-14)
- Linux-33-linux基础重要命令10(L005-15)
- Linux-34-linux基础重要命令11(L005-16)
- Linux-36-linux基础重要命令13(L005-18)
- Linux 基础重要命令
- Liunx基础命令(2)
- LIUNX 基础命令 (目录处理命令)
- Liunx基础命令
- liunx命令基础
- [一起学Hive]之十二-Hive SQL的优化
- 设计模式C++学习笔记之十七(Chain of Responsibility责任链模式)
- UIRectEdgeNone
- sql server中select语句需要申请的锁
- MAC OSX 的 spotlight 、mds_stores 关闭
- Linux-35-liunx基础重要命令12(L005-17)
- Android快速实现微信支付(真的!很快!)
- MP 新版本 [2 mysql sequelize 搭建数据库]
- 程序员修炼之道----从小工到大家读书笔记(一)
- ValueStack与Struts2标签-day5
- ios 安全相关工具整理
- JDK 源码解析 —— HashSet
- iOS OC 成员变量是强引用还是弱引用
- [一起学Hive]之十三-Hive整合HBase,操作HBase表