免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3282 | 回复: 7
打印 上一主题 下一主题

[文本处理] 请教awk中如何带入参数? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-14 16:59 |只看该作者 |倒序浏览
我想写一个通用的表数据处理程序,删除数据库表索引值重复的数据。
删除数据库表索引值重复的数据
wash_data1.sh 表中只有一个索引键
处理前准备:将所有数据合并(例user.txt),字段用|分隔
参数说明
./wash_data1.sh  user.txt        1
                 表数据文件名    索引序号


#cat  wash_data1.sh
sort  $1|uniq   >$1_1
awk -F'|' -v v=$2 'BEGIN{i=0;j=0} {if($v in a){j=j+1} else {a[$i]=$v;i=i+1;print $0}}' $1_1  >$1_2



执行./wash_data1.sh  user.txt        1并没得到我想要的结果。
请教shell脚本参数如何带入awk中?

论坛徽章:
0
2 [报告]
发表于 2012-10-14 17:30 |只看该作者
$v是错的
把$去掉再试试

论坛徽章:
0
3 [报告]
发表于 2012-10-14 18:18 |只看该作者
./wash_data1.sh  user.txt        1   
此处我我为第一个字段,此参数表明是以第几个字段为索引
如果此记录键值不存在,就将数据放到数组中并输出记录。



把$去掉也不行。

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
4 [报告]
发表于 2012-10-14 22:48 |只看该作者
sh -x调试信息看看

论坛徽章:
0
5 [报告]
发表于 2012-10-15 14:17 |只看该作者
我想写一个通用的表数据处理程序,删除数据库表索引值重复的数据。
删除数据库表索引值重复的数据
wash_data1.sh 表中只有一个索引键
处理前准备:将所有数据合并(例user.txt),字段用|分隔
参数说明
./wash_data1.sh  user.txt        1
                 表数据文件名    索引序号,第几个字段为索引键值


#cat  wash_data1.sh
awk -F'|' -v v=$2 'BEGIN{i=0;j=0} {if($v in a){j=j+1} else {a[$i]=$v;i=i+1;print $0}}' $1  >$1_2



执行./wash_data1.sh  user.txt     1   并没得到我想要的结果。
请教shell脚本参数$0,$1如何带入awk中?

论坛徽章:
0
6 [报告]
发表于 2012-10-16 09:12 |只看该作者
waker大侠,请为小弟解惑,不胜感谢!


实在没办法,只好用C来解决了。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
7 [报告]
发表于 2012-10-16 09:36 |只看该作者
回复 1# lcz88990200


    脚本写错了吧。


   放些样本数据上来,所你的问题描述清楚。

论坛徽章:
0
8 [报告]
发表于 2012-10-16 14:23 |只看该作者
运行一个shell脚本,如
./wash_data1.sh  user.txt       5   
处理文本文件和域序号作为参数变量带入wash_data1.sh  脚本(处理第几个域不固定,故作形参传入)
在wash_data1.sh  脚本中用awk对 user.txt 文本的第$2(此处为5)域进行处理
请教如何将$2=5  作为变量带入awk脚本中?


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP