假设我有一个包含数据的文件:
Emp_Id|Name|Age
100156|Sam|23
1508|Amy|26
1234|Annie|30
所以我有两列需要添加:
Dep_Id
具有数据类型编号(在exis文件中的第二个位置)
Department
的数据类型为varchar(在exis文件中的第5位)
现在,如果我知道需要添加列的位置,如何在UNIX中准备代码以使用默认值填充新列(例如,如果它是varchar,则给default
,如果它是数字,则给{{1 }})包含数据的现有文件中。
我想要这样的输出:
0
答案 0 :(得分:0)
您可以使用Awk完成此操作:
awk -F'|' 'NR == 1 { print $1 FS $2 FS $3 FS "Department" } NR > 1 { print $1 FS "0" FS $2 FS $3 FS "default" }' file.txt
这将产生预期的输出:
Emp_Id|Dep_Id|Name|Age|Department
100156|0|Sam|23|default
1508|0|Amy|26|default
1234|0|Annie|30|default
说明:
-F'|'
告诉awk
使用|
作为字段分隔符。这使您可以参考第一个字段为$1
。
NR
是指行号。对于第一行(NR == 1
),我们要打印第一列,然后打印一个字段分隔符(FS
,我们将其设置为|
),第二列,依此类推。
对于大于1的行,我们与第一行类似地打印数据。