在App开发过程中会遇到指定省市的需求,为了同服务端保持一直,一般是将省市从服务端导出来,但是需要将文件格式改为适合客户端的格式,一般是plist文件。
原文件格式:
目标plist文件的格式:
...
<dict>
<key>values</key>
<array>
<dict>
<key>provinceAndCities</key>
<dict>
<key>cities</key>
<array>
<dict>
<key>city</key>
<string>沈阳市</string>
</dict>
<dict>
<key>city</key>
<string>大连市</string>
</dict>
</array>
<key>province</key>
<string>辽宁省</string>
</dict>
</dict>
...
</array>
</dict>
第一步,用awk命令删除含有value字符串的行
将awk命令写入脚本中:
awk 'BEGIN {while(getline < "/Users/work/Desktop/city")
{if ($0 ~ /value/) {}
else {print $0 > "cityNew"}}}'
逐行读入原文件city,如果当前行$0中含有“value”字符串,则什么都不做;否则将改行写入新文件cityNew。
遇到过的问题:
本来想用~!匹配没有value的行,让后将其写入新文件,但是匹配不到结果。
第二步,进行多次字符串替换,以得到期望的结果
参考:
shell编程之awk命令详解 https://www.cnblogs.com/quincyhu/p/5884390.html