使用sed执行替换时丢失制表符和换行符

Dio*_*hio -1 linux bash replace sed

我需要从shell命令替换-Xmx1024m(更改10242048)standalone.conf.

我尝试这样做sed:

echo $(sed 's/1024/2048/g' standalone.conf) > standalone.conf.
Run Code Online (Sandbox Code Playgroud)

代码有效,但保存的文本丢失标签和换行符.

Cha*_*ffy 5

将扩展转换为不带echo引号的主题将其转换为字符串拆分和全局扩展,将这些进程生成的每个单词作为单独的参数传递echo(echo然后将它们组合在每个单独的空间之间).

请考虑一下:

sed 's/1024/2048/g' <standalone.conf >standalone.conf.new && mv standalone.conf{.new,}
Run Code Online (Sandbox Code Playgroud)

...而且,一般来说,总是使用echo "$foo"或代替echo $foo- 这里缺少引号,这对你的bug最直接负责.