【发布时间】:2018-03-15 17:22:10
【问题描述】:
我有一个管道分隔文件,我想在字段/第 24 列之后添加一个新单词(表示为文件名作为示例),我尝试使用
awk -F "|" '{{$(NF-2)="filename.txt"} print $0 }' OFS="|"
但这会覆盖相邻的列。
如:
0|ZZZZZ|Mr XXXXX|73 Up hill|Hurley|Atherstone|||XXX XXX|GB|00.01.2017|2134567686|7902379xxx|01.09.2017|25|||239|Stores Sheffield|||07.01.2018|13.10.2016||X||NP
成为:
0|ZZZZZ|Mr XXXXX|73 Up hill|Hurley|Atherstone|||XXX XXX|GB|00.01.2017|2134567686|7902379xxx|01.09.2017|25|||239|Stores Sheffield|||07.01.2018|13.10.2016||filename|X||NP
使用 awk:
0|ZZZZZ|Mr XXXXX|73 Up hill|Hurley|Atherstone|||XXX XXX|GB|00.01.2017|2134567686|7902379xxx|01.09.2017|25|||239|Stores Sheffield|||07.01.2018|13.10.2016||filename|||NP
可以帮助我在特定位置添加单词而不覆盖。
【问题讨论】:
-
为什么只有最后一行改变了?
-
您要设置该列的值 (NF-3),还是添加具有该值的列?
-
@RomanPerekhrest - 没抓住你!!
-
@guido - 我想添加一个新列
标签: bash shell awk sed scripting