免费注册 查看新帖 |

Chinaunix

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

有个连接的问题,请问各位 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-03 22:40 |只看该作者 |倒序浏览
| 4466091266 |     4236 | 2005040216 | 我有个log里面有类似这样的数,我现在想把第一个数取出来并用另外一个脚本处理,然后在写回到最后一个‘|’的后面,这个应该怎么来写呢?
cat aaaa.txt | awk '{print $2}' 取是这样,转换的脚本也有了,就是这中间怎么连接起来写呢?

[ 本帖最后由 fuyic 于 2007-4-4 10:06 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-04-04 10:00 |只看该作者
各位老大,给个建议提醒什么的都行啊,提点一下我这种初学者吧,拜谢

论坛徽章:
0
3 [报告]
发表于 2007-04-04 10:06 |只看该作者
try
  1. awk -F'|' 'BEGIN { OFS=FS; } $NF=$3+1' urfile
复制代码

论坛徽章:
0
4 [报告]
发表于 2007-04-04 10:13 |只看该作者
恩,是不是我的意思没说明白,我的意思是这样的
|44444|  555 |  66666|   我的需要是先把 44444这个数取出来,然后用另外一个sh进行处理,然后再回写到66666|的后面,楼上老大的命令是把 555给放到66666后面了。

论坛徽章:
0
5 [报告]
发表于 2007-04-04 10:22 |只看该作者
那就分两个步骤呗,反正取,和写回去你都知道了。

论坛徽章:
0
6 [报告]
发表于 2007-04-04 10:49 |只看该作者
不行,我还是不会,因为我读出来数据是要作为另外一个脚本的参数啊。能再解释解释怎么做么

论坛徽章:
0
7 [报告]
发表于 2007-04-04 10:57 |只看该作者
比如这样,awk就会输出到var变量
var=$(awk 'BEGIN{ print "abc"; }')

论坛徽章:
0
8 [报告]
发表于 2007-04-04 10:58 |只看该作者
下面这样,awk接收一个参数:
awk -vufo=${var} 'BEGIN { print ufo; }'

论坛徽章:
0
9 [报告]
发表于 2007-04-04 11:05 |只看该作者
原帖由 fuyic 于 2007-4-4 10:13 发表
恩,是不是我的意思没说明白,我的意思是这样的
|44444|  555 |  66666|   我的需要是先把 44444这个数取出来,然后用另外一个sh进行处理,然后再回写到66666|的后面,楼上老大的命令是把 555给放到66666后面了。



awk -F| 'BEGIN{OFS="|"}{print $2,$3,$4,$5,$1}' filename

论坛徽章:
0
10 [报告]
发表于 2007-04-04 13:15 |只看该作者
由于本人确实比较弱,所以还没彻底搞定,我现在是这么做
awk -F'|' 'BEGIN{OFS="|"}{print $1,$2,$3,$4,$2}' a.log>a1.log 这样将第一列数据搞到了最后一列
然后再对最后一列的数据进行操作,./test.sh `awk '{print $8}' a1.log`这样确实已经进行了处理,但是每次只处理一个数据,好像不能连续执行,还需请教各位。

[ 本帖最后由 fuyic 于 2007-4-4 13:16 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP