首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

见见这4个sed命令

2012-08-11 
看看这4个sed命令1、echo $@ | sed s,-v ,,g s,-v$,,g2、echo $@ | sed s/ /\ /g3、sed -n -e /^incl

看看这4个sed命令
1、echo $@ | sed "s,-v ,,g; s,-v$,,g"
2、echo "$@" | sed 's/ /\ /g'
3、sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"
4、sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'

sed参数看起来太繁杂了,有双引号,还有单引号,有逗号,还有分号……
谁能讲讲这4个命令的意思?(需要指出单引号、双引号的不同)。

[解决办法]
sed里的s/.../...中的/可以用任何其他符号代替,比如s@...@...和s/.../...是一样的。

所以,你见到的:

1,s/-v//g ,删除所有的-v; s/-v$//g 删除所有结尾的-v。
2, 删除所有的空格
3,有点乱,再说!
4, 替换YYY.XXX.XXX.XXX为YYY,

[解决办法]
第三个的意思是,保留include开头行后面括号中的内容。

Perl code
[www@www ~]$ echo "include ([color=#FF0000]the is the result[/color])"|sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"[color=#FF0000]the is the result[/color]
[解决办法]
1
# later cache the command line in config.status
OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g "`
多用在configure中,来缓存命令行。基本上可以理解为将-v去掉
[解决办法]
学习了。
单引号是强引用,对里面的引用不做扩展。双引号可以扩展变量
[解决办法]
每个都动手试试
[解决办法]
探讨

引用:

学习了。
单引号是强引用,对里面的引用不做扩展。双引号可以扩展变量

为什么sed手册没有体现这一点?难道是shell命令的通用语法?

热点排行