我有一个文件,其中的一部分我正在写入shell脚本中的变量。在这个变量中,我试图通过sed替换部分字符串。但它也以某种方式取代了'换行'。sed:默认取代 n
这里是脚本
#!/bin/bash
str=$(grep "my_stat" $1)
str=$(echo $str | sed -e "s/x/\./g")
echo "$str"
我str中的grep看起来像这样经过:
mystatx1x2x3 10
mystatx3x4x5 20
mystatx4x4x1 100
但更换 “X” 来后 “”它正在变成这样:
mystats.1.2.3 10 mystat.3.4.5 20 mystat.4.4.1 100
任何想法为什么它会发生这样的事情?
谢谢。
为什么不说'grep“my_stat”$ 1 |而不是sed's/x/.g''?请注意,您不要在替换字符串中转义'.'。这里使用'-e'是多余的。 – devnull