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

本文介绍如何使用awk命令处理App开发中的省市数据配置问题,通过删除特定格式的数据并进行字符串替换,将原始文件转换为适用于客户端的plist文件格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值