我已经浏览过其他帖子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那样工作。
答案 0 :(得分:3)
sed -n '/\*=/ {n;p;}' ...
您需要在p
之后终止该行,以便;
或新行。您的代码肯定适用于最近的GNU sed,但不适用于posix版本