awk - 使用 awk 替换多个字符,逗号用于 csv
问题描述
亲爱的,
我有以下列表,其中有时包含 10000 个条目:
listID.14.1 = STRING: test1
listID.14.2 = STRING: test2
listID.14.3 = STRING: test3
listID.14.4 = STRING: test4
listID.14.5 = STRING: test5
listID.14.6 = STRING: test6
listID.14.7 = STRING: test7
我希望输出是这样的
test1,test2,test3,...,test7
我使用了以下代码,它比新行更准确,因为某些列表包含新行
awk -F "listID.${listID}.([0-9]+|[0-9]{3}|[0-9]{1,5}) = STRING: " '{print ","$2}'
但输出恰好是:
,test1
,test2
,test3
,test4
这是错误的,不像我想要的“test1,test2,test3,......,testn”,我不确定如何修改我的代码以得到如上所示的结果,我正在考虑添加新行一开始但它对我不起作用的代码我认为我使用了错误的格式。需要一些帮助
awk -F "\nlistID.${listID}.([0-9]+|[0-9]{3}|[0-9]{1,5}) = STRING: " '{print ","$2}'
需要一些帮助关于此代码的第二个问题:
awk -F "listID.${listID}.([0-9]+|[0-9]{3}|[0-9]{1,5}) = STRING: " '{print ","$2}'
这种特定格式 ([0-9]+|[0-9]{3}|[0-9]{1,5}) 是否检查 1 到 10000 之间的数字
解决方案
提取最后一个空格后的文本并用逗号分隔打印:
cut -d' ' -f4 | paste -sd,
经测试:
cat <<EOF |
listID.14.1 = STRING: test1
listID.14.2 = STRING: test2
listID.14.3 = STRING: test3
listID.14.4 = STRING: test4
listID.14.5 = STRING: test5
listID.14.6 = STRING: test6
listID.14.7 = STRING: test7
EOF
cut -d' ' -f4 | paste -sd,
输出:
test1,test2,test3,test4,test5,test6,test7
推荐阅读
- jenkins - 如何将变量传递给 JenkinsFiles 中的凭证参数?
- prisma - Prisma 2:未知 arg `where` 在 select.count.where 类型未定义
- html - 如何将滚动条添加到具有固定标题行的表格中?
- java - Selenium :将第二个产品添加到购物车时,无法在叠加层上单击相同的关闭按钮。对于第一个项目,可以完美地单击关闭按钮
- android - 有没有办法在android上使用json格式的表情?
- markdown - Pandoc 将 YAML 标题转换为标题 1 以组合多个文件
- r - 不同 facet_grid 图中的相同面板高度,ggplot2 R
- http - 在完整日历月视图中缓存事件数据的可用性
- linux - 获取目录中 csv 文件的数量
- apache-spark - 在 Pyspark 中使用结构化流读取数据并希望写入文件大小为 100MB 的数据