我在使用sed命令时遇到了一些麻烦:
我想用一个字符串替换,单引号用两个单引号
这是我的字符串:
04CA07807800106109XE00187200000081960 NI 0780643442 178'0700
我使用此sed命令替换单引号:
line=`echo $line | sed "s/'/''/g"`
结果是
04CA07807800106109XE00187200000081960 NI 0780643442 178''0700
正如您所看到的,单引号被两个单引号正确替换 但是我丢失了字符串中每个字符之间的所有空格,我真的需要保留它们。
有没有办法用sed命令保留这些空格?
我尝试使用tr命令,我得到了相同的结果。
感谢您的帮助。
答案 0 :(得分:1)
问题不是sed命令,而是你的无引号变量。使用:
line=`echo "$line" | sed "s/'/''/g"`
不带引号的变量导致word splitting导致多个参数echo
,导致单个间隔的单词。