需要以适当的格式对齐csv文件

时间:2013-02-27 09:44:00

标签: shell unix scripting

我有一个正在运行的脚本,并以下面的格式提供csv文件作为输出

25-02-2013          
RJ          
D204349194          
Pagamento Caixa                                                     0   
           256.31    -256.31    

但我需要采用以下格式:

25-02-2013  RJ  D244728244  Pagamento Banco Brasil  0   403.25  -403.25

excel中的方法应该分为列

请建议我

3 个答案:

答案 0 :(得分:1)

如果您安装了column,请尝试以下行:

 awk '{printf $0}' file|column -t

为您的例子:

kent$  cat file
25-02-2013          
RJ          
D204349194          
Pagamento Caixa                                                     0   
           256.31    -256.31

kent$  awk '{printf $0}' file|column -t
25-02-2013  RJ  D204349194  Pagamento  Caixa  0  256.31  -256.31

答案 1 :(得分:0)

首先使用tr将所有内容拉到一行,然后使用sed根据字段拆分单行。 请尝试以下方法:

tr '\n' '\t' < file | sed -r 's/([0-9]{2}-[0-9]{2}-[0-9]{4})/\n\1/g'

这假定:

  • 您的文件是制表符分隔的
  • 每条记录的第一个字段是dd-MM-yyyy
  • 形式的日期
  • 除第一个字段
  • 外,记录中没有其他日期

答案 2 :(得分:0)

awk '{$1=$1; printf $0 "  "}' input; echo

$1=$1会挤压每一行的空白,echo会发出终止换行符。