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

如何用单行Bash脚本将域名IP数据转换为SQL更新语句?

单行Bash脚本实现数据转SQL语句

可以用awk工具快速完成这个转换,单行脚本如下:

awk -F ',' '{printf "update table1 SET ip='\''%s'\''where domain like '\''%s'\'';\n", $2, $1}' input.txt

脚本说明:

  • -F ',':指定逗号作为字段分隔符,将每行数据拆分为域名(第一个字段$1)和IP地址(第二个字段$2)
  • printf:按照SQL模板格式化输出,其中%s是占位符,分别代入IP和域名;'\''是Bash中单引号的转义写法,确保SQL语句里的单引号能正确输出
  • input.txt:存放原始域名,IP格式数据的文件名,如果需要从管道读取数据,可写成:
    cat input.txt | awk -F ',' '{printf "update table1 SET ip='\''%s'\''where domain like '\''%s'\'';\n", $2, $1}'
    

替代方案(用sed实现):

若习惯用sed,也可通过正则匹配替换完成:

sed -E "s/^([^,]+),([^,]+)$/update table1 SET ip='\2'where domain like '\1';/" input.txt
  • -E:启用扩展正则表达式,支持分组捕获
  • ^([^,]+),([^,]+)$:匹配整行内容,分别捕获逗号前的域名(第一组)和逗号后的IP(第二组)
  • \1、\2:引用捕获到的分组内容,替换为目标SQL格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:24:28