awk - 使用 awk 将行合并为一行
问题描述
我有一个包含以下记录的文件
ABC
BCD
CDE
EFG
我想把它转换成
'ABC','BCD','CDE','EFG'
我试图通过以下方式使用 awk 来解决这个问题:
awk '/START/{if (x)print x;x="";next}{x=(!x)?$0:x","$0;}END{print x;}'
但我得到的不是我所期望的:
ABC,BCD,CDE,EFG
关于我们如何实现这一目标有什么建议吗?
解决方案
请您尝试以下操作。
awk -v s1="'" 'BEGIN{OFS=","} {val=val?val OFS s1 $0 s1:s1 $0 s1} END{print val}' Input_file
输出如下。
'ABC','BCD','CDE','EFG'
推荐阅读
- gdb - 我可以将 .gdbinit 设为“使断点在未来共享库加载时挂起”吗?
- ios - 如何根据tableView单元格Swift中的Web服务数据设置进度条
- batch-file - 将 S3 中的文件移动到同名的新文件夹中
- cookies - Jmeter多个用户/会话不起作用
- eclipse - java.xml.namepsace 错误 - Java 中的 SOAP(Web 服务)
- ios - 在“DatePicker *”类型的对象上找不到属性“overrideUserInterfaceStyle”
- java - SQLite 不会删除表
- c# - 无法从 appsettings 获取对象列表
- python - 在 Python 的子进程命令行中使用 osmtogeosjon 将 OSM 文件转换为 geojson 文件
- jenkins - Jenkins 中缺少管道选项卡