为了账号安全,请及时绑定邮箱和手机立即绑定

假设我想利用shell在B文件里批量删除包含的A文件,请问该怎么操作?

假设我想利用shell在B文件里批量删除包含的A文件,请问该怎么操作?

白猪掌柜的 2021-09-02 07:07:19
A文件含有1万条记录2. B 文件含有100条不良记录.3.A文件里的记录包含B里的文件记录 格式也一样. 假设是不良URL3.如何用shell 写出在A文件里删除包含B 的不良URL
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

#!/bin/shwhile read linedo    grep "$line" B >/dev/null  #A文件的每行在B文件中查找看是否存在    [ $? -eq 0 ] || echo "$line" >>tmp  #不存在就输出到临时文件tmpdone <Amv tmp A  #用tmp覆盖A文件

查看完整回答
反对 回复 2021-09-06
?
守着一只汪

TA贡献1872条经验 获得超3个赞

给你写个脚本,将脚本放入目录内,或者把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"

查看完整回答
反对 回复 2021-09-06
  • 2 回答
  • 0 关注
  • 630 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信