在 kornshell 脚本中使用 sed 命令时保留空格

Keep spaces when using sed command in kornshell script

我在使用 sed 命令时遇到了一些问题:

我想用两个单引号替换字符串中的一个单引号
这是我的字符串:

04CA07807800106109XE00187200000081960          NI         0780643442        178'0700

我使用这个 sed 命令来替换单引号:

line=`echo $line | sed "s/'/''/g"`

结果是

04CA07807800106109XE00187200000081960 NI 0780643442 178''0700

如您所见,单引号被两个单引号正确替换了。
但是我丢失了字符串中每个字符之间的所有空格,我真的需要保留它们。

有没有办法用 sed 命令保留这些空格?
我尝试使用 tr 命令得到了相同的结果。

感谢您的帮助。

问题不是 sed 命令而是你未加引号的变量。使用:

line=`echo "$line" | sed "s/'/''/g"`

未加引号的变量导致 word splitting 导致 echo 的多个参数,从而导致单个空格的单词。