LinuxSir.cn,穿越时空的Linuxsir!

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

sed -e 's/^\([a-zA-Z]\+\) \([a-zA-Z]\+\)\(.*\)/\2 \1\3/g' file

[复制链接]
发表于 2003-3-16 21:44:34 | 显示全部楼层 |阅读模式
对这句话,我还是不太理解,尤其是那个加号和数字。

兄弟们都明白了吗?给我讲讲?
发表于 2003-3-17 00:05:57 | 显示全部楼层
没有明白!
 楼主| 发表于 2003-3-17 09:17:05 | 显示全部楼层
这是SED/AWK/GREP大练习那个贴里边的.

是SED练习的第10题.有位朋友用到了这个.

因为那是老贴,我怕在那贴里回的话估计也没谁会去看,所以把它贴这里彰显一下,呵呵,相信很多人都没搞明白这条命令.想请大家一起来讨论讨论.

不好意思啦.
发表于 2003-3-17 10:23:38 | 显示全部楼层
加号表示至少匹配一次。

\1等表示引用前面的第?个匹配.
发表于 2003-3-17 12:08:00 | 显示全部楼层
意思如下:
在文件每一行的开始,如果在第一个空格之前只含有英文字符,那么与空格之后的以英文字符开头截止到最后一个英文字符的字符串进行对换,例如
First Second1234....
变为Second First1234....

后面的数字为替代符,顺序代表前面那三个括号里的表达式,1就是第一个括号里的内容,以此类推,那么原有顺序\1 \2\3就被替换为\2 \1\3,所以就是一二表达式替换而已

仔细想,应该很简单
 楼主| 发表于 2003-3-17 12:45:47 | 显示全部楼层
多谢兄弟们,我正在想ING。。。。
 楼主| 发表于 2003-3-17 18:10:58 | 显示全部楼层
OKOK,大概明白了:)

但+,只适用于AWK,不适用于SED和GREP ?

继续想ING。。。。
发表于 2003-3-19 10:28:43 | 显示全部楼层
太麻烦了 !!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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