Linux 将某列中的数值替换为其他数值的步骤
我的数据如下:Linux 将某列中的数值替换为其他数值的步骤,linux,shell,awk,sed,Linux,Shell,Awk,Sed,我的数据如下: 83997000|17561815|20370101000000 83997000|3585618|20370101000000 83941746|13898890|20361231230000 83940169|13842974|20171124205011 83999444|3585618|20370101000000 83943970|10560874|20370101000000 83942000|13898890|20371232230000 83999333|3
83997000|17561815|20370101000000 83997000|3585618|20370101000000
83941746|13898890|20361231230000 83940169|13842974|20171124205011
83999444|3585618|20370101000000 83943970|10560874|20370101000000
83942000|13898890|20371232230000 83999333|3585618|20350101120000
现在,我想实现的目标如下:
83997000|17561815|20370101000000 83997000|3585618|20370101000000
83941746|13898890|20361231230000 83940169|13842974|20171124205011
83999444|3585618|20370101000000 83943970|10560874|20370101000000
83942000|13898890|20371232230000 83999333|3585618|20350101120000
如果第2列为17561815
,则打印22220
以替换17561815
如果第2列为3585618
,则打印23330
以替换3585618
如果第2列为13898890
,则打印24440
以替换13898890
如果第2列为13842974
,则打印25550
以替换13842974
如果第2列为3585618
,则打印26660
以替换3585618
如果第2列为10560874
,则打印27770
以替换10560874
输出如下所示:
83997000|22220|20370101000000 83997000|23330|20370101000000
83941746|24440|20361231230000 83940169|25550|20171124205011
83999444|26660|20370101000000 83943970|27770|20370101000000
83942000|24440|20371232230000 83999333|26660|20350101120000
awk
解决方案:
awk 'BEGIN{
FS=OFS="|";
a["17561815"]=22220; a["13898890"]=24440;
a["3585618"]=26660; a["13842974"]=25550;
a["10560874"]=27770
}
$2 in a{ $2=a[$2] }
$4 in a{ $4=a[$4] }1' file
输出:
83997000|22220|20370101000000 83997000|26660|20370101000000
83941746|24440|20361231230000 83940169|25550|20171124205011
83999444|26660|20370101000000 83943970|27770|20370101000000
83942000|24440|20371232230000 83999333|26660|20350101120000
到目前为止你试过什么?向我们展示你所做的事情,人们会更愿意帮助你。我们不会为你做作业/家庭作业。3585618、23330或26660应该由哪个号码代替?@RAZ_Muh_Taz,我刚开始学习Linux。我是improving@choroba很抱歉26660将取代3585618。问题在哪里提到第4栏?@ghoti,不要试图理解,这是直觉和“阅读思维”的情况。)@RomanPerekhrest,谢谢。你的回答很有用。然而,在我发布的内容中应该只有3个专栏。页面将其重新格式化为6列。现在,我只处理了3列,因此调整了命令,使其看起来像这样:awk'BEGIN{FS=OFS=“|”;a[“17561815”]=22220;a[“13898890”]=24440;a[“3585618”]=26660;a[“13842974”]=25550;a[“10560874”]=27770}$2在{$2=a[$2]}1'文件中