- A+
所属分类:shell学习笔记
今天遇到一个小需求,有两个文档,city.txt和near_city.txt,文件内容如下:
现在需要将near_city.txt中的所有城市名转为city.txt里相应的城市名的数字代号,其实城市也不多,500多个,复制替换1000多次就搞定了,然而并不想这么机械地做这个事情,就想着用shell来实现了。
难点在于需要同时取city.txt里面的两个变量来做遍历替换,于是通过定义一个数组a,就可以同时取多个变量值了。
cat city.txt|while read line; do a=(`echo $line`);a=${a[0]};b=${a[1]};sed -i "s/$a/$b/g" near_city.txt;done
脚本运行几秒钟,问题就解决了,如下: