当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 查找包含特定字符的文件,并删除该行。这个命令怎么写,找到了,不知道怎么删。[内详]
帖子发表于 : 2009-01-20 23:54 

注册: 2007-07-01 17:36
帖子: 229
地址: (En):address
系统: (En):System
送出感谢: 2
接收感谢: 3
比如:
可以用find |xargs grep找到某目录下包含 “#ubuntu forum"的所有文件,下面我要从这些找到的文件中删除包含这个字串的行。查了一下 sed 可以删除行,但是保存不了文件。另外不知道怎么让FIND和SED一起用,哪位给提个醒,怎么整?谢谢了。


_________________
---
regards,

Kent


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 查找包含特定字符的文件,并删除该行。这个命令怎么写,找到了,不知道怎么删。[内详]
帖子发表于 : 2009-01-21 6:43 
头像

注册: 2005-10-04 10:59
帖子: 1928
地址: 上海
送出感谢: 0 次
接收感谢: 1
sed -i -e '/<pattern>/d' <file>

-i 就是inplace的意思


_________________
弄个dropbox空间来备份文件或者做私人代码服务器
配置:git://github.com/roylez/dotfiles.git
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 查找包含特定字符的文件,并删除该行。这个命令怎么写,找到了,不知道怎么删。[内详]
帖子发表于 : 2009-01-21 16:20 

注册: 2007-07-01 17:36
帖子: 229
地址: (En):address
系统: (En):System
送出感谢: 2
接收感谢: 3
谢谢roylez,昨天晚上我也找到了这个-i, 但是现在我不太知道如何把查到的文件传给sed 比如
find -type f | xargs grep "theStringIneed"
这样可以找到所有文件. 用sed -i "theStringIneed" 可以删除行,怎么把那些文件都传给SED呢?一行命令能解决么? 是不是find | xargs grep | 然后cut 出文件名再sed? 还是应该怎么着弄?
还请给指点一下。

谢谢。


_________________
---
regards,

Kent


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 查找包含特定字符的文件,并删除该行。这个命令怎么写,找到了,不知道怎么删。[内详]
帖子发表于 : 2009-01-21 16:29 

注册: 2007-07-01 17:36
帖子: 229
地址: (En):address
系统: (En):System
送出感谢: 2
接收感谢: 3
刚才测试了一下,find,grep,cut, sed可以实现:

$ find -type f|xargs grep "theString I need"|cut -d: -f1 |xargs sed -i "/theStringIneed/d"

是不是有更好办法呢?觉得这个办法有点笨。请知道的朋友再指点一下在下。谢谢


_________________
---
regards,

Kent


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 查找包含特定字符的文件,并删除该行。这个命令怎么写,找到了,不知道怎么删。[内详]
帖子发表于 : 2009-01-21 16:53 
头像

注册: 2005-10-04 10:59
帖子: 1928
地址: 上海
送出感谢: 0 次
接收感谢: 1
sk1418 写道:
刚才测试了一下,find,grep,cut, sed可以实现:

$ find -type f|xargs grep "theString I need"|cut -d: -f1 |xargs sed -i "/theStringIneed/d"

是不是有更好办法呢?觉得这个办法有点笨。请知道的朋友再指点一下在下。谢谢


grep 可以 -r

grep -r . "theString I need"|cut -d: -f1 |uniq|xargs sed -i "/theStringIneed/d"


_________________
弄个dropbox空间来备份文件或者做私人代码服务器
配置:git://github.com/roylez/dotfiles.git
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 查找包含特定字符的文件,并删除该行。这个命令怎么写,找到了,不知道怎么删。[内详]
帖子发表于 : 2009-01-21 17:04 

注册: 2007-07-01 17:36
帖子: 229
地址: (En):address
系统: (En):System
送出感谢: 2
接收感谢: 3
的确阿,如果按照文件类型来find,这个find是有点多余。看来find和grep搭配的时候应该提前动个脑筋哈。
不过没有find,这个 uniq就必要了。

谢谢你。

另外问句闲玩儿的,你的头像是朝鲜人民的领袖金正日么?


_________________
---
regards,

Kent


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 查找包含特定字符的文件,并删除该行。这个命令怎么写,找到了,不知道怎么删。[内详]
帖子发表于 : 2009-01-21 19:10 
头像

注册: 2005-10-04 10:59
帖子: 1928
地址: 上海
送出感谢: 0 次
接收感谢: 1
对,大家都叫我“金主席” :em05


_________________
弄个dropbox空间来备份文件或者做私人代码服务器
配置:git://github.com/roylez/dotfiles.git
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 查找包含特定字符的文件,并删除该行。这个命令怎么写,找到了,不知道怎么删。[内详]
帖子发表于 : 2009-01-21 21:42 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
for i in *; do sed -i xxxx; done
打倒金。居然得意了。


_________________
● 鸣学


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 查找包含特定字符的文件,并删除该行。这个命令怎么写,找到了,不知道怎么删。[内详]
帖子发表于 : 2009-01-22 4:39 

注册: 2007-07-01 17:36
帖子: 229
地址: (En):address
系统: (En):System
送出感谢: 2
接收感谢: 3
eexpress, 能说详细点么? 我觉得也能用循环,但是不知道咋整。
谢谢。


_________________
---
regards,

Kent


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译