▶ echo '< zlib-bin'|sed "s/^<\ \(.*\)/\1(`aptitude search ~i~Dzlib-bin -F %p`)/"
zlib-bin(kicad )
▶ echo '< zlib-bin'|sed "s/^<\ \(.*\)/\1(`aptitude search ~i~D\1 -F %p`)/"
sed: -e 表达式 #1, 字符 96: 未终止的“s”命令↵
sed的替换里面执行命令,还能引用搜索结果不
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: sed的替换里面执行命令,还能引用搜索结果不
两个空间,无法穿越
代码: 全选
$ echo '< zlib-bin'|sed 's/^<\ \(.*\)/\1(`aptitude search ~i~D\1 -F %p`)/'
zlib-bin(`aptitude search ~i~Dzlib-bin -F %p`)
$ a=$(echo '< zlib-bin'|sed 's/^<\ \(.*\)/\1(`aptitude search ~i~D''\1 -F %p`)/')
$ echo $a
zlib-bin(`aptitude search ~i~Dzlib-bin -F %p`)
$ eval echo \"$a\"
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: sed的替换里面执行命令,还能引用搜索结果不
说不定sed的奇淫技巧,可以做到。期待。
虽然pl能搞定。
虽然pl能搞定。
代码: 全选
perl -pe 'if(/[<>]\ (.*)/){$p=`aptitude search ~i~D$1 -F %p`;if($p){$p=~s/\n/,/g;$p=~s/\s*//g;chomp;$_.="($p)\n";}}'
● 鸣学
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: sed的替换里面执行命令,还能引用搜索结果不
sed " " 双引号中的 ` ` 中的语句,被shell解释, 另起空间执行 将结果返回给sed,在由sed 将原有内容和这个返回内容组合一并执行。
` ` 外的内容和 ` `里的内容是两个空间的, 不能玩穿越。这不是靠sed能解决的。
这么理解我觉得不存在什么奇淫技巧。除非sed在它自己的密闭空间(将sed语句由双引号换成单引号括起来)里有能力调用执行shell命令。但sed只是文本工具。
` ` 外的内容和 ` `里的内容是两个空间的, 不能玩穿越。这不是靠sed能解决的。
这么理解我觉得不存在什么奇淫技巧。除非sed在它自己的密闭空间(将sed语句由双引号换成单引号括起来)里有能力调用执行shell命令。但sed只是文本工具。