怎么过滤一个文件中的所有图片的超链接?

使用如下 命令可是实现:cat page.json |grep -Po 'https?://[^"\s<>]+\.(jpg|jpeg|png|gif|webp|svg|bmp)(?=[\s"''>])'

mongodb从原来库导出老的文本文件(不是二进制):

mongoexport --uri="mongodb://aaa:bbb@127.0.0.1:27017/nt_shop?authSource=admin"  -c tolPagePackCmpt  -o page.json

其中:aaa是用户,bbb为密码,nt_shop 为 mongodb的库名字,-c 后面的tolPagePackCmpt   为集合的名字, -o 后面的page.json 为导出的文本文件,注意mongoexport  不能对正库导出,只能是集合。

mongodb把导出的“文本”文件重新导入到新的库

mongoimport --uri=mongodb://aaab:bbb@127.0.0.1:27017/nt_shop?authSource=admin" -c tolPagePackCmpt --file=page.json --drop


在 Vim 的替换语法里,

 \r  代表 “插入  字符”(即 Unix 换行),

而  \n  代表 “NULL 字符(ASCII 0)”,不是换行!

因此

vim

:%s/,/\r/g


把逗号替换成 ,一行变两行,正是你要的效果;

vim

:%s/,\n/g


这里的  \n  被 Vim 当成 NULL,当然找不到也替换不了。

Vim 里与“换行”相关的内部表示


含义

 \r   插入 LF(Unix 换行)

 \n  插入 NULL(ASCII 0)

 \_s  匹配任何空白(空格、Tab、换行)

 \n  在 查找模式 里才代表“换行符”本身,替换模式 里仍是 NULL

总结

查找时想匹配换行,用  \n (或  \_s )

替换时想“插入换行”,必须用  \r ,而 不是  \n 

所以你的命令

vim

:%s/,/\r/g


就是 Unix 下“逗号变换行”的正确写法; \n  在替换侧永远不会给你换行

请先 登录 后评论
  • 0 关注
  • 0 收藏,18 浏览
  • shitian 提出于 2026-01-07 11:37

相似问题