分页: 1 / 1
sed的替换里面执行命令,还能引用搜索结果不
发表于 : 2014-03-12 22:23
由 eexpress
▶ 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”命令↵
Re: sed的替换里面执行命令,还能引用搜索结果不
发表于 : 2014-03-12 23:06
由 cao627
两个空间,无法穿越
代码: 全选
$ 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\"
Re: sed的替换里面执行命令,还能引用搜索结果不
发表于 : 2014-03-13 11:41
由 eexpress
说不定sed的奇淫技巧,可以做到。期待。
虽然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";}}'
Re: sed的替换里面执行命令,还能引用搜索结果不
发表于 : 2014-03-13 12:22
由 cao627
sed " " 双引号中的 ` ` 中的语句,被shell解释, 另起空间执行 将结果返回给sed,在由sed 将原有内容和这个返回内容组合一并执行。
` ` 外的内容和 ` `里的内容是两个空间的, 不能玩穿越。这不是靠sed能解决的。
这么理解我觉得不存在什么奇淫技巧。除非sed在它自己的密闭空间(将sed语句由双引号换成单引号括起来)里有能力调用执行shell命令。但sed只是文本工具。