echo { sl { abc }} | sed 's/ \([{}]\) /\1/g'中用的?为什么可删除{和}前后的
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/11 01:54:07
echo { sl { abc }} | sed 's/ \([{}]\) /\1/g'中用的?为什么可删除{和}前后的所有空格而不是单个
一般来说 /g 参数的意思是在一行匹配多次,直到匹配失败再执行下一条命令.
另外还有一点就是,其实 echo 遇到多个空格其实也就输出一个,除非你用引号之类的把要输出的东西括起来.你可以自己试试.
这个命令整体来讲还是挺奇怪的,不太容易看明白.其实它的意思是保留 { 或者 },但是要把它前后的空格删去.
用空格不太容易看清楚,我换成点可能更容易解释:$ echo "..{.si...{...abc..}...}.." | sed -e 's/\.\?\([{}]\)\.\?/\1/g'
.{...si..{..abc.}.}./\.\?\([{}]\)\.\?/ 的主体是 \([{}]\) 它的意思是匹配 { 或者 }.并把这个结果记住以备在替换时使用.\.\? 的意思是最多匹配一个点,可有可无.然后整个替换成 \1 也就是之前记住的部分.所以这个命令的实际意思是找到 { 或者 } 然后就把它之前 和/或 之后的空格替换掉.
通过数 . 可以发现其实 sed 只对每个 { 或者 } 执行了一次替换(虽然这一行上的每一个 { 和 } 都执行了一次,这是 /g 的作用).这是合理的,因为某一个 { 执行替换之后,sed 记住了本次匹配点的位置,再匹配时是从该点的下一个位置开始寻找的.这是正则表达式的一种标准实现方式.
另外还有一点就是,其实 echo 遇到多个空格其实也就输出一个,除非你用引号之类的把要输出的东西括起来.你可以自己试试.
这个命令整体来讲还是挺奇怪的,不太容易看明白.其实它的意思是保留 { 或者 },但是要把它前后的空格删去.
用空格不太容易看清楚,我换成点可能更容易解释:$ echo "..{.si...{...abc..}...}.." | sed -e 's/\.\?\([{}]\)\.\?/\1/g'
.{...si..{..abc.}.}./\.\?\([{}]\)\.\?/ 的主体是 \([{}]\) 它的意思是匹配 { 或者 }.并把这个结果记住以备在替换时使用.\.\? 的意思是最多匹配一个点,可有可无.然后整个替换成 \1 也就是之前记住的部分.所以这个命令的实际意思是找到 { 或者 } 然后就把它之前 和/或 之后的空格替换掉.
通过数 . 可以发现其实 sed 只对每个 { 或者 } 执行了一次替换(虽然这一行上的每一个 { 和 } 都执行了一次,这是 /g 的作用).这是合理的,因为某一个 { 执行替换之后,sed 记住了本次匹配点的位置,再匹配时是从该点的下一个位置开始寻找的.这是正则表达式的一种标准实现方式.
echo -n "$1" | wc -c | sed 's/ //g' 什么意思
帮忙详细解释一下这句shell语句(path="`echo $0 | sed 's,//*,/,g'`")的意思,
if [ -z $(echo $1 | sed -e 's/[0-9]//g') ]; then
请教命令行:sed "s/,*\(.*\),/\1/g"
正则表达式 echo $1 > 1.tmp sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\
Echo的《ECHO》 歌词
shell中尖括号的意义?sed 's,\($*\)\.o[ :]*,\1.o $@ :,g' < $@.$$$$ >
sed 's/ /\t/g'中的/g是什么意思?
关于LINUX的SED:帮忙详细解释下面命令中符号的含义.sed 's/\.gds[.]*
linux命令 sed 请问有哪位大大知道这个sed sed 's/\//\\\//g'
三毛的英文名为什么叫Echo?
shell的sed用法