如何从文件中读取行并基于逗号分隔并分配变量名称

时间:2018-09-27 12:56:31

标签: linux bash

这就是我作为输入行

Table_name,1~2~3,U,2018-09-26 05:07:31.000000886,2018-09-26 06:49:03.003,DEPT_NBR|DIV_NBR,FARGO                              |                |916244244                                         |
||||||,FARGO||916244244|
awk -F, '{for(i=1;i<=NF;i++) print $i}' file

下面是它的作用

Table_name  
1~2~3  
U  
2018-09-26 05:07:31.000000886  
2018-09-26 06:49:03.003  
DEPT_NBR|DIV_NBR  
FARGO                              |                |916244244                                         
||||||FARGO||916244244|  

以下是我正在寻找的预期输出

Tablename:Table_name  
Row_key:1~2~3  
CDC_FLAG:U  
INGESTION_TS:2018-09-26 05:07:31.000000886  
CDC_TS:2018-09-26 06:49:03.003  
FIELD_NAME:DEPT_NBR|DIV_NBR  
OLD_VALUES:FARGO                              |                |916244244                                          
NEW_VALUES:||||||FARGO||916244244|  

并且我希望能够比较OLD_VALUES和NEW_VALUES并写出差异

1 个答案:

答案 0 :(得分:0)

在BEGIN块中输入名称。

awk -F, 'BEGIN { name[1] ="Tablename"; name[2]="Row_key"; etc.}
      {for(i=1;i<=NF;i++) print name[i] ":" $i}' file