LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1941|回复: 15

awk print 的一个教训

[复制链接]
发表于 2005-4-27 16:52:14 | 显示全部楼层 |阅读模式
cat machinefile
machine1:4
machine2:4
machine3:2
machine4:2

要换成
machine1:1
machine2:1
machine3:1
machine4:1

  1. cat machine | awk 'BEGIN {FS=":"} {print $1,"\b:1"}'
复制代码

这段显示出来完全正确,可是 > 文件后,变成了

machine1 ^H:1
machine2 ^H:1
machine3 ^H:1
machine4 ^H:1

:ask

经过一翻 man awk,原来这样才正确,

  1. cat machine | awk 'BEGIN {FS=":"} {print $1":1"}'
复制代码


更复杂的就要用 printf 了,居然也有 printf  :cool:
发表于 2005-4-27 17:09:02 | 显示全部楼层
想不明白为何你要用退格符?
回复 支持 反对

使用道具 举报

发表于 2005-4-27 20:26:49 | 显示全部楼层
这样岂不是简单点:
  1. zhyfly@zhyfly:~/bash$ cat matchfile
  2. machine1:4
  3. machine2:4
  4. machine3:2
  5. machine4:2
  6. zhyfly@zhyfly:~/bash$ cat matchfile|awk -F: '$2=1'>"matchfile"
  7. zhyfly@zhyfly:~/bash$ cat matchfile
  8. machine1 1
  9. machine2 1
  10. machine3 1
  11. machine4 1
  12. zhyfly@zhyfly:~/bash$
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-4-27 20:42:58 | 显示全部楼层

太麻烦了

直接在vi里用命令替换多简单啊
回复 支持 反对

使用道具 举报

发表于 2005-4-27 20:46:06 | 显示全部楼层
Just:
%sed 's/[42]$/1/g'  matchfile > matchfile.new
回复 支持 反对

使用道具 举报

发表于 2005-4-27 23:51:09 | 显示全部楼层

  1. perl -pi -e 's/[\d ]$/1/g' file
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-4-28 09:56:00 | 显示全部楼层
Post by DSL

  1. perl -pi -e 's/[\d ]$/1/g' file
复制代码

实践证明不行. :ask
回复 支持 反对

使用道具 举报

发表于 2005-4-28 12:22:26 | 显示全部楼层
Post by Freebird
实践证明不行. :ask


  1. /home/lee#cat temp
  2. machine1:4
  3. machine2:4
  4. machine3:2
  5. machine4:2
  6. /home/lee#perl -pi -e 's/[\d ]$/1/g' temp
  7. /home/lee#cat temp
  8. machine1:1
  9. machine2:1
  10. machine3:1
  11. machine4:1
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-4-28 12:29:56 | 显示全部楼层
Post by DSL

  1. /home/lee#cat temp
  2. machine1:4
  3. machine2:4
  4. machine3:2
  5. machine4:2
  6. /home/lee#perl -pi -e 's/[\d ]$/1/g' temp
  7. /home/lee#cat temp
  8. machine1:1
  9. machine2:1
  10. machine3:1
  11. machine4:1
复制代码


丫的我就是不行
回复 支持 反对

使用道具 举报

发表于 2005-4-28 12:31:23 | 显示全部楼层
Post by Freebird
丫的我就是不行

哈哈,就知道你不行,给你来点"蚁力神"你就行啦
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表