所以基本上我有一个包含 1500 个名字的原始列表,每个名字都有一个 4 位数字。我有另一个文件,其中包含这 1500 个姓名中的 200 个姓名以及与其关联的新 4 位数字。我需要用这个新号码替换旧号码。
我有一个文件original.txt,其中包含 1500 行文本,如下所示:
姓名 AYxxxx
姓名 2 AYxxxx
姓名 3 AYxxxx
......
姓名1500 AYxxxx
xxxx是4位数字,AY是每4位字符前面出现的字符串
我有一个 Updated_file.txt,其中包含 200 行,如下所示:
姓名 AYzzzz
名称40 AYzzzz
姓名1300 AYzzzz
zzzz 是一个不同的 4 位数字。我需要使用新号码(zzzz)并替换original.txt中的旧号码(xxxx)。
所以在原文中,我需要的文本应该是这样的:
姓名 AYzzzz
姓名 2 AYxxxx
名称40 AYzzzz
姓名1300 AYzzzz
姓名1500 AYxxxx
我正在考虑做这样的事情:
names=updated.txt
while read names
do
sed -E "s/$names[^AY.*]/$names/" original.txt
done < "$names"
您可以从更新字段生成 sed 脚本,例如
sed 's:\(.*AY\)\d\+:/\1/s_.*_&_:' UPDATEFILE > SEDUPDATE.SED
然后在原始文件上运行生成的脚本,如下所示:
sed -f SEDUPDATE.SED ORIGINAL_FILE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)