免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3964 | 回复: 15
打印 上一主题 下一主题

求助一个简单的awk 问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-02 10:19 |只看该作者 |倒序浏览
a:b:c:d:e:f:g
a:b:c:d:e:f:g
a:b:c:d:e:f:g



我想把最后两个域调换一下

BEGIN{
tmp
FS=":"
}
{
   tmp=$6
   $6=$7
   $7=tmp
}
这样可是结果没有任何变化,
请大侠指点

论坛徽章:
0
2 [报告]
发表于 2010-07-02 10:28 |只看该作者
awk -F: '{OFS=":";print $1,$2,$3,$4,$5,$7,$6}' ufile
初学,大侠们鄙视我吧

论坛徽章:
0
3 [报告]
发表于 2010-07-02 10:32 |只看该作者
哈哈 谢谢killer911

论坛徽章:
0
4 [报告]
发表于 2010-07-02 10:36 |只看该作者
其实你已经做对了,只是没有加输出,在后面加个print $0就OK了

BEGIN{
tmp
FS=":"
}
{
   tmp=$6
   $6=$7
   $7=tmp
   print $0
}

论坛徽章:
0
5 [报告]
发表于 2010-07-02 10:37 |只看该作者
回复 1# longmm1988


    你没有打印,改成:
  1. BEGIN{
  2. tmp
  3. FS=":"
  4. }
  5. {
  6.    tmp=$6
  7.    $6=$7
  8.    $7=tmp
  9. }1
复制代码

论坛徽章:
0
6 [报告]
发表于 2010-07-02 10:47 |只看该作者
回复 2# killer911
  1. 哈哈,要是有很多个域呢,写起来多麻烦:
  2. awk -F: '{s=$NF;$NF=$(NF-1);$(NF-1)=s}1' OFS=":" file
复制代码

论坛徽章:
0
7 [报告]
发表于 2010-07-02 10:48 |只看该作者

论坛徽章:
0
8 [报告]
发表于 2010-07-02 11:20 |只看该作者
[root@TEST jy]# awk -F: 'BEGIN{FS=OFS=":"}{tmp=$6;$6=$7;$7=tmp;print $0}' test.1
a:b:c:d:e:g:f
a:b:c:d:e:g:f
a:b:c:d:e:g:f

论坛徽章:
0
9 [报告]
发表于 2010-07-02 11:30 |只看该作者
回复 6# bbgg1983


哈哈,学习

论坛徽章:
1
水瓶座
日期:2013-11-04 13:16:13
10 [报告]
发表于 2010-07-02 11:59 |只看该作者
回复 1# longmm1988


    awk  -F: '{OFS=":";$6=$7":"$6}NF--'   URFILE
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP