我有一个users.txt文件格式:
User:CityID
Carl:0212
Syd:0312
Rick:9323
Run Code Online (Sandbox Code Playgroud)
和格式的city.txt文件
Anaheim:0212
San Jose:0312
Run Code Online (Sandbox Code Playgroud)
我需要使用city.txt文件中的城市名称替换users.txt中的每个CityID.我如何使用sed和awk实现这一目标?
我可以使用awk获取CityID的列:
awk -F$'\:' '{print $2}'< users.txt
Run Code Online (Sandbox Code Playgroud)
但它如何用相应的城市名称取代它们呢?
谢谢.
这可行:
awk 'BEGIN{FS=OFS=":"}NR==FNR{a[$2]=$1;next}{$2=a[$2]}1' city.txt user.txt
Run Code Online (Sandbox Code Playgroud)
BEGIN{FS=OFS=":"} :我们将输入和输出字段分隔符设置为 :
NR==FNR{a[$2]=$1;next} :我们读取城市文件并创建一个数组来存储以城市ID索引的城市名称
{$2=a[$2]} :我们通过引用数组替换user.txt中的第二个字段
1 :这是打印线