eri*_*old 0 unix bash command-line sed
我sed -e 's/<em\:update.*//g' install.rdf > install.rdf在bash脚本中有以下内容,它可以在命令行上运行,但在bash脚本中,install.rdf会结束一个空白文件.
当我运行sed -e 's/<em\:update.*//g' install.rdf > install.rdf命令行时,从文件中删除了2行.
知道为什么sed -e 's/<em\:update.*//g' install.rdf > install.rdf不在bash脚本中工作吗?
试试这个:
sed -i -e 's/<em\:update.*//g' install.rdf
Run Code Online (Sandbox Code Playgroud)
在截断模式下将输出重定向到文件时,文件会在读取之前先截断.因此,结果是一个空文件.使用sed -i避免了这一点.
便携式(并且希望不是太不安全)的解决方案:
(set -C &&
sed -e 's/<em\:update.*//g' install.rdf > install.rdf.$$ &&
mv install.rdf.$$ install.rdf)
Run Code Online (Sandbox Code Playgroud)
:-)