如何用linux实现删除a文件中包含b文件内容的所有行,并生成新文件?

a文件截图b文件截图两个文件内容都很多,只截取部分。... a文件截图

b文件截图
两个文件内容都很多,只截取部分。
展开
 我来答
抗夏侯兰8C
2016-06-01 · TA获得超过181个赞
知道小有建树答主
回答量:248
采纳率:57%
帮助的人:146万
展开全部
给你写个脚本,将脚本放入目录内,或者把a,b文件的绝对路径添加到其中也可以
注意`cat b` 的两个反引号(键盘tab上面的那个键)不要打错了
你说的生成新文件,脚本里写的生成新文件c,然后把a文件备份成a-bak,再把c文件命名为a,以这样的方式实现。脚本:

#! /bin/sh
cat a | egrep -v "`cat b`" > c
mv a a-bak
mv c a
echo "done"
更多追问追答
追问
您好,用您的脚本得不到相应结果。后来我只用 (  cat a | egrep -v "`cat b`"  )都不行,但是用(  cat a | egrep -v "TCONS_00000001"  )就可以得到相应的结果。所以还要麻烦您,实在感谢!
追答
你好,排除脚本执行失败:1,首先要保证b文件跟你给截图的格式是相同的,每个条件要单独成行。2,如果b文件内容非常多的话也可能造成cat a | egrep -v "`cat b`" > c命令参数过长而无法实现,这种情况的话可以分割b文件并多次重定向到多个文件进行逐级筛选,比较麻烦。
你最好还是去linux社区、csdn、红黑联盟、chinaunix等等社区上问问,上面linux大神很多,可能会有更简单的方法
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式