当前位置: 技术问答>linux和unix
看看这4个sed命令
来源: 互联网 发布时间:2017-03-04
本文导语: 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参数看起来太繁杂了,有双引号,还有单引号,有逗号,还有分号…… ...
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个命令的意思?(需要指出单引号、双引号的不同)我写的一个Linux下完成ftp命令的脚本,大家帮忙看看哪里不对?
iis7站长之家
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,
所以,你见到的:
1,s/-v//g ,删除所有的-v; s/-v$//g 删除所有结尾的-v。
2, 删除所有的空格
3,有点乱,再说!
4, 替换YYY.XXX.XXX.XXX为YYY,
|
第三个的意思是,保留include开头行后面括号中的内容。
[www@www ~]$ echo "include (the is the result)"|sed -n -e "/^include.*(.*)/s/include.*((.*)).*$/1/p"
the is the result
|
1
# later cache the command line in config.status
OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
多用在configure中,来缓存命令行。基本上可以理解为将-v去掉
# later cache the command line in config.status
OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
多用在configure中,来缓存命令行。基本上可以理解为将-v去掉
|
学习了。
单引号是强引用,对里面的引用不做扩展。双引号可以扩展变量
单引号是强引用,对里面的引用不做扩展。双引号可以扩展变量
|
每个都动手试试
|
这是shell的语法