linux - 将 FQDN 和 IP 列表转换为两列 CSV

标签 linux bash csv awk sed

我想要一个这样的列表:

example.com
1.2.3.4
ftp.example.com
2.3.4.5
3.4.5.6
www.example.com
4.5.6.7
5.6.7.8
6.7.8.9

并解析为逗号分隔的 CSV 格式,以便在流行的电子表格程序中打开时,父 FQDN 位于 A 列,子 IP 位于 B 列。

我想使用 native Linux 二进制文件执行此操作,以便我可以烘焙到现有的 BASH 脚本中。

欢迎任何帮助,并提前致谢。

最佳答案

这可能对你有用(GNU sed):

sed -r '/[[:alpha:]]/h;//d;G;s/(.*)\n(.*)/\2,\1/' file

如果该行包含字母字符,即地址,则将其存储在保留空间中,然后将其删除。否则,将地址附加到当前行,然后交换两个字段,用 , 替换换行符并打印。

关于linux - 将 FQDN 和 IP 列表转换为两列 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32916822/

相关文章:

python - 按所需顺序对大文件进行排序

linux - 如何将 '<' 和 '>' 传递给 bash 脚本?

c - 从recvfrom()缓冲区访问值

linux - 检查是否可以从linux内核空间访问内存地址

arrays - awk 输出元素乱序

bash - rsync 中 --out-format 的自定义日期/时间格式

linux - Unix shell 脚本 : pass shell options (-x etc. ) 到嵌套脚本

Java API 从 CSV 文件创建对象

scala - Scala 有按列拆分 CSV 的好方法吗?

python - 检查 CSV 中的正则表达式