sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
- Adam_chen
- 帖子: 26
- 注册时间: 2012-03-17 20:35
- 枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
- 联系:
- Adam_chen
- 帖子: 26
- 注册时间: 2012-03-17 20:35
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
恩呀!睡了先!明天去图书馆补这方面知识,上课没讲到!多谢提点啦枫叶饭团 写了:sed
Learn more!Communicate more!
- Adam_chen
- 帖子: 26
- 注册时间: 2012-03-17 20:35
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
哈哈 看并测试了一个多小时!搞定啦!如下代码:
file文件的内容,如下:
1
123
2
3
4
删除123这行的方法:sed -i '/'`grep "12" file`'/d' file
附网上查到的资料:
如果有一个abc.txt文件,内容是:
aaa
bbb
ccc
ddd
eee
fff
如果要删除aaa,那么脚本可以这样写:
sed -i '/aaa/d' abc.txt
如果删除的是一个变量的值,假如变量是var,应该写成:
sed -i '/'"$var"'/d' abc.txt
file文件的内容,如下:
1
123
2
3
4
删除123这行的方法:sed -i '/'`grep "12" file`'/d' file
附网上查到的资料:
如果有一个abc.txt文件,内容是:
aaa
bbb
ccc
ddd
eee
fff
如果要删除aaa,那么脚本可以这样写:
sed -i '/aaa/d' abc.txt
如果删除的是一个变量的值,假如变量是var,应该写成:
sed -i '/'"$var"'/d' abc.txt
Learn more!Communicate more!
-
- 帖子: 386
- 注册时间: 2008-10-11 22:41
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
这种操作方式有点危险,如果你有多行 有这个字符,那同样也会被干掉的......
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- Think1st
- 帖子: 45
- 注册时间: 2012-02-07 23:08
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
file文件的内容如果如下就搞不定了。Adam_chen 写了:哈哈 看并测试了一个多小时!搞定啦!如下代码:
file文件的内容,如下:
1
123
2
3
4
删除123这行的方法:sed -i '/'`grep "12" file`'/d' file
附网上查到的资料:
如果有一个abc.txt文件,内容是:
aaa
bbb
ccc
ddd
eee
fff
如果要删除aaa,那么脚本可以这样写:
sed -i '/aaa/d' abc.txt
如果删除的是一个变量的值,假如变量是var,应该写成:
sed -i '/'"$var"'/d' abc.txt
删除包行"123"的行,用1
123
2
3
4
1234
代码: 全选
sed -i '/123/d' file
在这里,问题比答案更抢手。
- Adam_chen
- 帖子: 26
- 注册时间: 2012-03-17 20:35
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
确实有这个问题!不然也想不到更好的办法了!但是我的作业里面的话每一行都是独一无二的!所以可以采用zhpe78 写了:这种操作方式有点危险,如果你有多行 有这个字符,那同样也会被干掉的......
Learn more!Communicate more!
- Adam_chen
- 帖子: 26
- 注册时间: 2012-03-17 20:35
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
这个反引号不是可以的吗??eexpress 写了:`grep "12" file`
![]()
![]()
![]()
你确信你这是使用sed?

Learn more!Communicate more!
- Adam_chen
- 帖子: 26
- 注册时间: 2012-03-17 20:35
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
恩恩 具体情况看你自己要找的什么内容!其实我作业里就是独一无二的名字变量~Think1st 写了:file文件的内容如果如下就搞不定了。Adam_chen 写了:哈哈 看并测试了一个多小时!搞定啦!如下代码:
file文件的内容,如下:
1
123
2
3
4
删除123这行的方法:sed -i '/'`grep "12" file`'/d' file
附网上查到的资料:
如果有一个abc.txt文件,内容是:
aaa
bbb
ccc
ddd
eee
fff
如果要删除aaa,那么脚本可以这样写:
sed -i '/aaa/d' abc.txt
如果删除的是一个变量的值,假如变量是var,应该写成:
sed -i '/'"$var"'/d' abc.txt删除包行"123"的行,用1
123
2
3
4
1234代码: 全选
sed -i '/123/d' file
Learn more!Communicate more!
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
代码: 全选
sed -i '/'`grep "12" file`'/d' file
- Adam_chen
- 帖子: 26
- 注册时间: 2012-03-17 20:35
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
唉 实在没想到更好的办法aerofox 写了:不能不说这种用法非常非常另类,一个 grep 夹在里面,没有带来任何好处,倒可能添乱。代码: 全选
sed -i '/'`grep "12" file`'/d' file
Learn more!Communicate more!
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
7楼不是已经给出了正统的方法了吗?
- Adam_chen
- 帖子: 26
- 注册时间: 2012-03-17 20:35
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
七楼?莫非把找到的东西赋值给一个字符串变量?其实题目差不多已知一串字符串!然后在文件中找到该字符串所在的行!貌似也没有啥更好的办法诶aerofox 写了:7楼不是已经给出了正统的方法了吗?
Learn more!Communicate more!
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: sh下shell编程,搜索到文件里的一行,并且把这行删除!应该怎么实现呢??
夹在 grep 命令两端的那两个 / 干什么用的?这就是查找呀,为什么还要走 grep 绕一圈呢?
如果 grep 命令只能找到一行,那么你那条命令跟下面这条结果是相同的:
如果文件中有多行包含字符串 12,则上面这条简单的 sed 命令可以成功删除多行,而带 grep 那条命令会出错。
不要一看题目中有“查找”,就想着用 grep。
如果 grep 命令只能找到一行,那么你那条命令跟下面这条结果是相同的:
代码: 全选
sed "/12/d" file
不要一看题目中有“查找”,就想着用 grep。