You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用sed或awk提取文件中的指定域名并输出到新文件?

文本提取解决方案

嘿,我来帮你搞定这个域名提取的需求!针对你手里的file1内容,这里有两个实用的sed命令方案,能快速帮你去掉多余字符串,提取出想要的域名:

方案一:分步替换多余内容

直接把每行开头的** server can't find 和结尾的: NXDOMAIN替换为空就行,命令如下:

sed 's/\*\* server can'\''t find //; s/: NXDOMAIN//' file1 > new_file.txt

小解释:

  • 因为shell里单引号需要转义,所以用'\''来表示can't里的单引号,确保命令能正确执行
  • 分号分隔两个替换操作,先处理开头的冗余内容,再处理结尾的
  • 最后把结果重定向到new_file.txt,就是你要的干净域名列表啦

方案二:正则捕获精准提取

如果你的文本格式非常固定,也可以用正则直接捕获中间的域名部分,只保留这部分内容,更精准:

sed -E 's/^\*\* server can'\''t find ([^:]+): NXDOMAIN$/\1/' file1 > new_file.txt

小解释:

  • -E启用扩展正则,让语法更简洁
  • ([^:]+)匹配冒号前的所有字符(域名里不会有冒号,刚好完美匹配),把这部分标记为捕获组
  • \1引用这个捕获组的内容,相当于直接把整行替换成我们要的域名

执行完任意一个命令后,new_file.txt里的内容就会是:

bla.bla.com
bla2.bla.com
bla3.bla.com
bla4.bla.com
bla5.bla.com

要是你之前的sed命令没生效,大概率是单引号转义或者正则匹配范围的问题,可以试试上面的方案哦~

内容的提问来源于stack exchange,提问作者Lewie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:50:51