gpt4 book ai didi

linux - 基于字符串字段的 if 语句

转载 作者:太空宇宙 更新时间:2023-11-04 12:56:01 25 4
gpt4 key购买 nike

我有几个以“,”分隔的字符串。我需要根据匹配的字段搜索和替换字符串。对于例如。

字符串是:

MUMBAI,918889986665,POSTPAID,CRBT,CRBT,SYSTEM,151004,MONTHLY,160201,160302
MUMBAI,912398456781,POSTPAID,SEGP30,SEGP30,SMS,151004,MONTHLY,160201,160302

我需要编写一个脚本来搜索和替换基于字段编号 4 的行。

说明:(sudo代码)

if [Field4==CRBT]

将第 1 行更新为:

 8889986665,ACT,DEFAULT,1,0,SYSTEM,2016-03-02 00:00:00

如果 [Field4==SEGP30]

将第 2 行更新为:

   2398456781,ACT,SEGP30_0,3,0,SMS,2015-03-02 00:00:00

经过所有比较,期望的输出应该是:

 8889986665,ACT,DEFAULT,1,0,SYSTEM,2016-03-02 00:00:00
2398456781,ACT,SEGP30_0,3,0,SMS,2015-03-02 00:00:00

请帮助我编写 shell 脚本。

最佳答案

创建一个名为 keydata 的文件来存储您的 if/else 映射,如下所示(由竖线分隔):

CRBT|8889986665,ACT,DEFAULT,1,0,SYSTEM,2016-03-02 00:00:00
SEGP30|2398456781,ACT,SEGP30_0,3,0,SMS,2015-03-02 00:00:00

然后使用这个 awk 命令:

awk 'FNR==NR{a[$1]=$2; next} $4 in a{$0=a[$4]} 1' FS="|" keydata FS="," file

8889986665,ACT,DEFAULT,1,0,SYSTEM,2016-03-02 00:00:00
2398456781,ACT,SEGP30_0,3,0,SMS,2015-03-02 00:00:00

关于linux - 基于字符串字段的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35744222/

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