我有一个将分隔文件转换为固定宽度文件的需求,详情如下。
输入文件示例:
AAA|BBB|C|1234|56
AA1|BB2|DD|12345|890
输出文件示例:
AAA BBB C 1234 56
AA1 BB2 DD 12345 890
现场职位详情
- 字段 1 从位置 1 开始,长度应为 5
- 字段 2 从位置 6 开始,长度应为 6
- 字段 3 从位置 12 开始,长度应为 4
- 字段 4 从位置 16 开始,长度应为 6
- 字段 5 从位置 22 开始,长度应为 3
最佳答案
另一种awk
解决方案:
echo -e "AAA|BBB|C|1234|56\nAA1|BB2|DD|12345|890" |
awk -F '|' '{printf "%-5s%-6s%-4s%-6s%-3s\n",$1,$2,$3,$4,$5}'
请注意 printf 语句中 %-3s
之前的 -
,它将按照问题中的要求将字段左对齐。输出:
AAA BBB C 1234 56
AA1 BB2 DD 12345 890
关于linux/unix 将定界文件转换为固定宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48525968/