我需要从shell命令中替换-Xmx1024m
中的1024
(将2048
更改为standalone.conf
)。
我尝试使用sed
执行此操作:
echo $(sed 's/1024/2048/g' standalone.conf) > standalone.conf.
该代码有效,但是保存的文本丢失了制表符和换行符。
最佳答案
将扩展传递给echo
无引号会使它经历字符串拆分和glob扩展,将这些进程产生的每个单词作为一个单独的参数传递给echo
(该echo
然后在每个之间用单个空格组合)。
请考虑:
sed 's/1024/2048/g' <standalone.conf >standalone.conf.new && mv standalone.conf{.new,}
...并且,通常,总是使用
echo "$foo"
或代替echo $foo
-此处缺少引号是导致您的错误最直接的原因。关于linux - 用sed替换时丢失制表符和换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35491534/