shell练习1:删除目录下指定文件中的指定行
2017-02-10 22:18
369 查看
删除lianxi目录下所有的a.txt文件里的所有内容为”lucy”的行
[root@vmcentos lianxi]# for i in {1..5};do echo "test" >> $i/a.txt;done [root@vmcentos lianxi]# for i in {1..5};do echo "lucy" >> $i/a.txt;done [root@vmcentos lianxi]# find /root/lianxi -name a.txt -exec sed -i '/lucy/d' {} \; [root@vmcentos lianxi]# cat {1..5}/a.txt test test test test test [root@vmcentos lianxi]# for i in {1..5};do echo "lucy" >> $i/a.txt;done [root@vmcentos lianxi]# cat 1/a.txt test lucy [root@vmcentos lianxi]# find . -name a.txt | xargs sed -i '/lucy/d' [root@vmcentos lianxi]# cat {1..5}/a.txt test test test test test
备忘
find的exec和xargs俩种方法find /root/lianxi -name a.txt | xargs ls -lh find /root/lianxi -name a.txt -exec ls -lh {} \;
sed删除匹配行and替换匹配行
[root@vmcentos 1]# cat a.txt lucy test [root@vmcentos 1]# sed -i '/^l.*/d' a.txt [root@vmcentos 1]# cat a.txt test [root@vmcentos 1]# vi a.txt [root@vmcentos 1]# cat a.txt test lucy [root@vmcentos 1]# sed -i 's/^l.*/haha/g' a.txt [root@vmcentos 1]# cat a.txt test haha [root@vmcentos 1]#
-i 表示操作在源文件上生效.否则操作内存中数据,并不写入文件中.
在分号内的/d表示删除匹配的行
分号内的s/表示替换
/g表示全局替换
相关文章推荐
- shell脚本删除目录下的指定文件
- shell 定时删除某个目录指定格式文件(递归)
- shell脚本删除目录下的指定文件
- shell脚本删除指定目录下超过指定时间的文件
- HDFS练习5-----删除指定目录下的所有的空文件和空文件夹(包含子文件夹下的内容)
- shell-删除目录下指定日期前的所有文件
- Linux监控系统磁盘使用比例,当使用率达到指定比例,删除指定目录下的所有文件的shell脚本
- shell删除当前目录及递归目录下文件指定字符串
- shell脚本,对指定目录下C文件,替换和删除字符串
- 根据字段状态删除指定目录文件的shell脚本
- shell练习-对指定目录下的符合条件的文件执行操作
- shell 删除目录及子目录指定类型的文件
- shell删除当前目录及递归目录下文件指定字符串
- shell 删除指定目录下过时的文件或目录
- shell从目录下指定的文件类型里匹配关键字
- 建立指定目录下文件的索引并删除
- 删除指定目录下指定文件
- shell执行目录下文件,找出指定错误
- 删除指定目录下指定文件
- 启动shell的调试模式 set -x ,find 当前目录下的指定类型文件