从shell脚本将国家代码转换为国家名称

时间:2019-11-08 13:43:16

标签: shell

我有一个传递给我的shell脚本的参数an ISO 3166-2 country code,它指定要处理的文件,例如$1 = 'be'

我想找到一个对应的文件,例如be.pdf,并将其重命名为国家/地区名称,例如belgium.pdf

我什至不知道从哪里开始?

查找可以是CSV文件,SQL数据库或其他内容。 我没有偏好。我只需要能够接受输入并查找新值并进行重命名即可。

1 个答案:

答案 0 :(得分:3)

假设文件中有映射,则可以使用bash关联数组

code=$1
   # Associative array, keyed of country code
declare -A cc
while read xcc xname ; do
  cc[$xcc]=$xname
done < cc_codes.txt

  # Translate, and rename
fullname=${cc[$code]}
mv "$cc.pdf" "$fullname.pdf"

地图文件(cc_codes.txt)由简单的空格分隔

us united_states
be belgium
uk United_Kindom
...

请注意,这使用了bash特定功能