如何使用awk命令对省市文件进行处理

在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

猜你喜欢

转载自blog.csdn.net/dangyalingengjia/article/details/80494686