我从yaml文件中解析出来的最终数据在文本文件中是这样的:
- id: 200
addr: 10.242.57.129/27
- id: 210
addr: 10.242.57.161/25
- id: 300
addr: 10.244.26.1/24
我想转换为这个并保存为txt与shell脚本(bash):
200,10.242.57.125,27
210,10.242.57.162,25
300,10.244.26.11,24
有人能帮我吗?
需要为此获取命令shell(使用awk、grep、sed ...)。
我使用了以下代码,但它不起作用:
grep -F -e "id:" | cut -c 14-16 -e "addr:" | cut -c 16-35 ip.txt | paste -d , - -
3条答案
按热度按时间w80xi6nr1#
假设这个问题也标记为
powershell
,那么让我提供一个使用switch
语句的本地PowerShell解决方案,它的功能类似于awk
:$Matches
用于访问分支条件正则表达式匹配的内容。-f
运算符用于设置输出字符串的格式。ecbunoof2#
使用GNU
sed
wj8zmpe13#
这可能对你有用(GNU sed):
追加下一行。
删除除ID和地址以外的所有内容。
将新行和
/
替换为,
的。