我在 Linux 中使用了这个 sed,并且有几个 AIX 服务器也需要使用它,但是一直出现这个错误,而且我找不到任何关于它的信息,尽管它很具体。
下面的可以工作,但是复杂的我搞不清楚。
$RESULTSFILE="RESULTS.txt"
$echo -en "\nLine1 Connection info\n\nLine2\nERROR:\nError message\n\n" > $RESULTSFILE
$result=`sed -n '/^ERROR:/{p}' $RESULTSFILE`
sed: 0602-404 Function /^ERROR:/{p} cannot be parsed.
$if [ "$result" == "ERROR:" ]; then echo True; else echo False; fi
更复杂的 sed
$RESULTSFILE="RESULTS.txt"
$echo -en "\nLine1\n\nLine2\n\nMore lines\n--------------------------------------------------------------------------------\nInfo I want to get\nare each of these\n\nlines.\n\nDisconnected...\n\n" > $RESULTSFILE
$result=`sed -n '/^---*/,/Disconnected/{/^---*/d;/^Disconnect*/d;p}' $RESULTSFILE`
sed: 0602-404 Function /^---*/,/Disconnected/{/^---*/d;/^Disconnect*/d;p} cannot be parsed.
答案1
在 AIX 和 Linux 中,打印变量有所不同,正确的方法是执行以下操作。sed -n '/^ERROR:/,$p' $RESULTSFILE
答案2
GNU sed 可能不像 UNIX sed 那样有限制。
sed -n '/^ERROR:/{p}/' $RESULTSFILE
应该可以。请参见后面的/
。