sed命令乱码为bash 3.0

时间:2015-05-07 11:04:59

标签: bash sed

我已经浏览过其他帖子Sed command garbled didnt work 但它没有帮助我

flag=1
echo "enter the folder into which you want to capture"
read logs
mkdir $logs
path=/user/gur40139/shell/angel
 for i in $path/*.tra*
  do
   value=$( grep -ic \*= $i )
     if [ $value -ge $flag ]
      then
         name=`basename $i .tra\*`
         echo -e "count is $value\n" >> $path/$logs/log_"$name".txt
         sed -n '/\*=/ {n;p}' $i|sed 2n\;G >> $path/$logs/log_"$name".txt
     fi
  done
 echo -e "\nDone\n"

错误:

sed:命令乱码:/ \ * = / {n; p}

附加说明:此代码在bash 4.1版本上正常运行,但我想在3.0中测试它,有许多选项甚至不像sed --version那样工作。

1 个答案:

答案 0 :(得分:3)

sed -n '/\*=/ {n;p;}' ...

您需要在p之后终止该行,以便;或新行。您的代码肯定适用于最近的GNU sed,但不适用于posix版本