0

我有一个脚本正在运行并以以下格式提供一个 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中它应该分为列

请建议我

4

3 回答 3

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
于 2013-02-27T10:10:44.463 回答
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
  • 除第一个字段外,记录中没有其他日期
于 2013-02-27T12:08:52.307 回答
0
awk '{$1=$1; printf $0 "  "}' input; echo

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

于 2013-02-27T13:44:32.373 回答