linux - CSV 文件不输出数据对齐不工作
问题描述
CSV 文件输出数据与右列不对齐。
Account number (preferred / formatted),Customer reference,Posting date,Account currency,Transaction amount
750856653,233420,3/9/2019,USD,-2092.99
750856653,233417,3/9/2019,USD,-2856.15
750856653,233426,3/9/2019,USD,-2392.25
750856653,233414,3/9/2019,USD,-1733.22
750856653,233424,3/9/2019,USD,-1850.31
750856653,233403,3/9/2019,USD,-1850.32
750856653,233413,3/9/2019,USD,-1439.58
750856653,233431,3/9/2019,USD,-186.66
脚本/代码:
#!/bin/bash
input="/home/users/dcapps/bank/Monthsal.csv"
sed 's/,/:,/g' Monthsal.csv |
column -t -s: |
sed 's/ ,/,/g'
while IFS=',' read -r f1 f2 f3 f4 f5
do
echo "$f1 $f2 $f3 $f4 $f5 "
done < "$input"
结果应如下所示:
Accountnumber Customerreference Postingdate Accountcurrency TransactionAmt
750856653 233420 3/9/2019 USD 2092.99
750856653 233417 3/9/2019 USD 2856.15
解决方案
您想将 CSV 数据漂亮地打印为格式良好的人类表格吗?救援专栏:
$ column -s, -t input.csv
Account number (preferred / formatted) Customer reference Posting date Account currency Transaction amount
750856653 233420 3/9/2019 USD -2092.99
750856653 233417 3/9/2019 USD -2856.15
750856653 233426 3/9/2019 USD -2392.25
750856653 233414 3/9/2019 USD -1733.22
750856653 233424 3/9/2019 USD -1850.31
750856653 233403 3/9/2019 USD -1850.32
750856653 233413 3/9/2019 USD -1439.58
750856653 233431 3/9/2019 USD -186.66
(我看到你在你的脚本中使用它......不确定你用 sed 和添加/删除其他分隔符所做的其他事情是为了什么,或者那个 while 循环......)
推荐阅读
- java - Kotlin ClassNotFoundException:com.android.org.conscrypt.OpenSSLRSAPublicKey
- vifm - Vifm 启动:如何让 vifm 记住启动时的最后一个光标/选择器位置?
- javascript - 如何将位置星号从右到左角材料2更改?
- reactjs - 将组件状态传递给 redux-form
- ios - 如何快速将字符串转换为阿拉伯语
- swift - UIButton 的方法“backgroundRect(forBounds:)”是做什么用的?
- html - 如何编写参数化的xpath?
- jquery - 如何使用jquery ajaxForm在多选上提交逗号分隔
- php - 无法在数据库中存储数据
- excel-formula - Excel 公式根据特定条件添加值