LinuxSir.cn,穿越时空的Linuxsir!

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

awk的“保持空间”?

[复制链接]
发表于 2006-2-8 16:01:32 | 显示全部楼层 |阅读模式
我想在 awk 中实现象 sed 那样的保持空间 \( \),请问应该怎么做?例如“掐头去尾”:
sed 's/a\(b\)c/d\1f/'

谢谢
发表于 2006-2-8 16:30:34 | 显示全部楼层
这个有点难,想不到了
回复 支持 反对

使用道具 举报

发表于 2006-2-14 16:58:06 | 显示全部楼层
这样可以吧:
[HTML]
echo 'The strings of abcdefg' | awk '{print gensub(".*(cd).*","--\\1---","g")}'
--cd---
[/HTML]
回复 支持 反对

使用道具 举报

发表于 2006-2-16 03:39:05 | 显示全部楼层
Post by linux_now
这样可以吧:
[HTML]
echo 'The strings of abcdefg' | awk '{print gensub(".*(cd).*","--\\1---","g")}'
--cd---
[/HTML]

very cool! But I'd just use sed..
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-17 14:42:05 | 显示全部楼层
好办法。看来 gensub() 和 gsub() 是有区别的,原来没有注意过,一直只用 gsub
回复 支持 反对

使用道具 举报

发表于 2006-2-18 05:59:08 | 显示全部楼层
oh ya. gsub() only returns how many times matched but gensub() returns the result.
回复 支持 反对

使用道具 举报

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

本版积分规则

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