gpt4 book ai didi

csv - 替换 csv 中多列中的字符串

转载 作者:行者123 更新时间:2023-12-04 21:50:01 25 4
gpt4 key购买 nike

考虑下面的示例:

BRANCH|TXN_ID|CUSTOMER|PROCESS_DATE|VALUE_DATE|AMOUNT|UPLOAD_DATE|NARRATIVE
1|23234|12343|20141030|20141030|2000|20141030|TEST
1|23234|12343|20141030|20141030|2000|20141030|TEST
1|23234|12343|20141030|20141030|2000|20141030|TEST
1|23234|12343|20141030|20141030|2000|20141030|TEST
1|23234|12343|20141030|20141030|2000|20141030|TEST
1|23234|12343|20141030|20141030|2000|20141030|TEST
1|23234|12343|20141030|20141030|2000|20141030|TEST

如果我使用sed 's/20141030/20141029/g',它将替换20141030的所有实例,包括UPLOAD_DATE,这不是我想要的。

来自网络,awk 示例仅替换字符串的一个实例。我需要一次性替换所有实例

所以我的问题是,如何使用 unix 脚本替换第 4 列和第 5 列(处理日期和起息日期)的内容,同时保持文件的格式?结果将被写入一个新文件。

最佳答案

使用awk

awk 'BEGIN{FS=OFS="|"}{sub(20141030,"20141029",$4); sub(20141030,"20141029",$5); print}' inputFile

输出为

BRANCH|TXN_ID|CUSTOMER|PROCESS_DATE|VALUE_DATE|AMOUNT|UPLOAD_DATE|NARRATIVE
1|23234|12343|20141029|20141029|2000|20141030|TEST
1|23234|12343|20141029|20141029|2000|20141030|TEST
1|23234|12343|20141029|20141029|2000|20141030|TEST
1|23234|12343|20141029|20141029|2000|20141030|TEST
1|23234|12343|20141029|20141029|2000|20141030|TEST
1|23234|12343|20141029|20141029|2000|20141030|TEST
1|23234|12343|20141029|20141029|2000|20141030|TEST

关于csv - 替换 csv 中多列中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26650132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com