bash - Grep方法删除文件中与其他文件中的任何行匹配的所有行?
问题描述
我有一个相机信息文件,其中每一行都有一个唯一的格式 ID
{"_id":{"$oid":"5b0cfa5845bb0c0004277e13"},"geometry":{"coordinates":[139.751,35.685]},"addEditBy":["dd53cbd9c5306b1baa103335c4b3e91d8b73386ba29124ea2b1d47a619c8c066877843cd8a7745ce31021a8d1548cf2a"],"legacy_cameraID":1,"type":"ip","source":"google","country":"JP","city":"Tokyo","is_active_image":false,"is_active_video":false,"utc_offset":32400,"timezone_id":"Japan Standard Time","timezone_name":"Japan Standard Time","reference_url":"101.110.193.152/","retrieval":{"ip":"101.110.193.152","port":"80","video_path":"/"},"__v":0}
我还有一个要从原始文件中删除的相机 ID 列表,格式如下:
5b182800751c3b00044514a9
5b1976b473569e00045dba59
5b197b1273569e00045ddf0f
5b1970cc73569e00045d94fc
如何使用 grep 或其他命令行实用程序删除输入文件中具有第二个文件中列出的 ID 的所有行?
解决方案
假设您有一个名为ids.txt
的文件,其中包含需要从您的数据文件中排除的所有相机 ID,我们将其称为data.json
. 我们可以使用-f
grep 选项(从文件匹配)和-v
选项(只输出不匹配的行)如下:
grep -f ids.txt -v data.json
grep
只会输出data.json
与ids.txt
.
推荐阅读
- image - 在 docker 容器中找不到已安装的 pip 包
- elixir - 有效使用 genstage Elixir
- javascript - 将导入移动到单独的文件
- oracle - 无效的标识符和返回语句不能包含 PL/SQL 中的表达式
- java - 线程“main”java.lang.Error 中的异常:未解决的编译问题:Program.main
- wordpress - 使用 Polylang 以当前选择的语言返回术语
- jquery - 如何将css类应用于html页面上两次点击之间的所有元素?
- scala - 在相同情况下,None 和 Some() 上的 Scala 模式匹配
- java - 如何删除哈希图值的一部分?
- python - 如何将 yolo 检测到的对象发送到邮件