当前位置: 技术问答>linux和unix
用shell脚本删除不含特定关键字的行
来源: 互联网 发布时间:2016-10-02
本文导语: 文本内容如下: xxxx /home/this/a.txt /home/this/a.txt /home/this/a.txt /home/this/a.txt /home/this/a.txt /home/this/a.txt /home/kkk/a.txt /home/ggg/a.txt 只要文本行不带/home/this/就删除掉该行,如何实现,最终得到结果如下: /home/this/a.txt /home/thi...
文本内容如下:
xxxx
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/kkk/a.txt
/home/ggg/a.txt
只要文本行不带/home/this/就删除掉该行,如何实现,最终得到结果如下:
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
xxxx
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/kkk/a.txt
/home/ggg/a.txt
只要文本行不带/home/this/就删除掉该行,如何实现,最终得到结果如下:
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
|
你用的是linux还是unix环境啊?是在bash里么?
我这里就可以
[root@test ~]# cat testfile
xxxxxxxx
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/kkk/a.txt
/home/ggg/a.txt
[root@test ~]# sed -i -e '//home/this//!d' testfile
[root@test ~]# cat testfile
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
|
不知道咋回事了 我用ksh一样好用
我的版本
ksh-20100202-1.el5_5.1
sed-4.1.5-5.fc6
#!/bin/ksh
echo "---before sed----"
cat testfile
sed -i -e '//home/this//! d' testfile
echo "---after sed----"
cat testfile
# ./test.sh
---before sed----
xxxx
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/kkk/a.txt
/home/ggg/a.txt
---after sed----
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
/home/this/a.txt
我的版本
ksh-20100202-1.el5_5.1
sed-4.1.5-5.fc6