学了学shell,钻个牛角尖,根据接口文档生成配置数组...awk sed xargs

本文详细介绍了如何使用VIM、awk、sed和xargs等工具从文本文件中提取特定信息,并将其转换为特定格式的过程。通过实例演示了如何处理不同类型的数据(如艺术类别、地域、年龄区间),包括文本替换、格式调整和最终输出。适用于文本数据处理和格式化场景。

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



首先用vim拿到需要的行 写入a.txt

然后看到a.txt内容如下...

 316 |           |                | 0=其它                                                              |      |
 317 |           |                | 1=国画                                                              |      |
 318 |           |                | 2=书法                                                              |      |
 319 |           |                | 3=油画                                                              |      |
 320 |           |                | 4=雕塑                                                              |      |
 321 |           |                | 5=版画                                                              |      |
 322 |           |                | 6=水粉水彩                                                          |      |
 323 |           |                | 7=设计                                                              |      |
 324 |           |                | 8=摄影                                                              |      |
 325 |           |                | 10=收藏                                                             |      |
 326 |           |                | 11=当代艺术                                                         |      |
 327 |           |                | 12=漫画家                                                           |      |
 328 |           |                | 13=工艺美术家                                                       |      |
 329 |           |                | 14=连环画                                                           |      |
 330 |           |                | 15=评论家                                                           |      |
 331 |           |                | 18=当代陶艺                                                         |      |
 332 |           |                | 19=壁画                                                             |      |
 333 |           |                |                                                                     |      |
 334 |           |                | 当为所属地域时:                                                    |      |
 335 |           |                | 1=华东                                                              |      |
 336 |           |                | 2=华南                                                              |      |
 337 |           |                | 3=华北                                                              |      |
 338 |           |                | 4=华中                                                              |      |
 339 |           |                | 5=西北                                                              |      |
 340 |           |                | 6=西南                                                              |      |
 341 |           |                | 7=东北                                                              |      |
 342 |           |                |                                                                     |      |
 343 |           |                | 当为年龄区间时:                                                    |      |
 344 |           |                | 1=40岁以下                                                          |      |
 345 |           |                | 2=40岁-60岁                                                         |      |
 346 |           |                | 3=60岁以上                                                          |      |


取到对应的行 把= 替换成=> 然后给后面加单引号就行了 用到awk sed xargs 巩固一下


cat a.txt | awk '{print $5}' | grep -v '|' | grep -v ':' | sed "s/=/=>\\\'/" | xargs -i echo {}"',"

第一步取到第五列,然后过滤没用的行, awk '{print $5}' | grep -v xxxx

第二步替换完成用sed "s/=/=>'/"即刻

第三部用xargs则输入需要对'做转义,那么需要前面替换再加个\  变成\'作为xargs的输入  ,由于在""里面,则需要再加一层转义

所以第二步替换变成 sed "s/=/=>\\\'/" 再放到xargs里面

然后xargs -i echo {}"',"

就拿到了想要的格式


0=>'其它',
1=>'国画',
2=>'书法',
3=>'油画',
4=>'雕塑',
5=>'版画',
6=>'水粉水彩',
7=>'设计',
8=>'摄影',
10=>'收藏',
11=>'当代艺术',
12=>'漫画家',
13=>'工艺美术家',
14=>'连环画',
15=>'评论家',
18=>'当代陶艺',
19=>'壁画',
1=>'华东',
2=>'华南',
3=>'华北',
4=>'华中',
5=>'西北',
6=>'西南',
7=>'东北',
1=>'40岁以下',
2=>'40岁-60岁',
3=>'60岁以上',


ps:纯属钻牛角尖...勿学

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值