awk - 如何使用 awk 打印头文件,然后将值分隔到 csv 文件中?
问题描述
我删除了我原来的问题,不得不采取不同的方法。
现在我有一个实际的制表符分隔值文件:
名称->(选项卡)地址->(选项卡)城市->(选项卡)状态等。
我想把这个文件转换成 csv。
但是新 csv 的第一行需要我可以输入的实际列名。(“姓名”、“地址”等)
如何使用 csv 执行此操作?
解决方案
转述你的问题:
我有一个没有标题的制表符分隔文件。
我想将其转换为逗号分隔,同时添加一个标题。
这是一种方法(假设你的 shell 是 bash)
header=(Loc Name Address Apt City State Zip)
(IFS=$'\t'; echo "${header[*]}"; cat file) |
awk -F'\t' -v OFS=',' '{$1 = $1; print}'
该$1 = $1
部分是一个 awk 习惯用法:除非数据已更新,否则 awk 不会使用新的字段分隔符重新计算行。
给定这个输入文件
$ cat -A file
US^IJohn^I742 Evergreen Terr.^I^ISpringfield^IMA^I01101$
US^IJane^I666 5th Avenue^I#1408^INew York^INY^I11101$
命令输出
Loc,Name,Address,Apt,City,State,Zip
US,John,742 Evergreen Terr.,,Springfield,MA,01101
US,Jane,666 5th Avenue,#1408,New York,NY,11101
推荐阅读
- swift - 根据 Apple 文档计算文本高度
- c++ - Is there any way to use both Borland Compiler and graphics.h in CodeBlocks?
- azure-data-lake - 限制从 ADLS Gen2 到其他平台的数据移动
- arrays - 是否可以仅使用这三个过程 Max(A, i, j)、Min(A, i, j) 和 Swap(A, i, j) 来设计 O(n log n) 排序算法?
- arduino-esp8266 - HTTP Espressif arduino 客户端无法连接
- r - R函数使用的参数是固定的吗?
- javascript - 在返回确认中添加 href
- android - 忽略房间中的 Where 子句
- javascript - 如何访问插槽对象属性以传递给 Vuetify 中给定数据表行的组件?
- javascript - addClass 发生后如何添加内容