测试命令的awk/sed

测试命令的awk/sed,awk,ksh,Awk,Ksh,从我的ksh我有 [[ ` echo $READ_LINE | awk '{print $2}' ` != SOME_WORD ]] && print "not match" 我可以得到如何在没有echo命令的情况下验证相同内容的建议吗?也许awk/sed适合这样做 lidia类似的方法会奏效: awk -v x="$READ_LINE" -v y="SOME_WORD" 'BEGIN { split(x, a); if (a[2] != y) print "not m

从我的ksh我有

  [[  ` echo $READ_LINE | awk '{print $2}' ` != SOME_WORD  ]] && print "not match"
我可以得到如何在没有echo命令的情况下验证相同内容的建议吗?也许awk/sed适合这样做


lidia

类似的方法会奏效:

awk -v x="$READ_LINE" -v y="SOME_WORD" 'BEGIN { split(x, a); if (a[2] != y) print "not match";}'
但是$READ_行从何而来?你想完成什么?可能还有一个好的简单sh或ksh解决方案

我高度怀疑你的说法,echo可能是一个贝壳内置需要比awk更多的时间。以下是一个简单的sh版本:


但是ksh看起来最适合您的情况。

这将按单词分割行,并测试第二个单词

read ign val && [ X$val != XSOME_WORD ] && echo "not match"
var=($READ_LINE)
[[  ${var[1]} != SOME_WORD  ]] && print "not match"

你想达到什么目的?您的几个问题几乎相同。

如果您使用的是ksh,那么只需使用shell,而不必调用外部命令

set -- $READ_LINE
case "$2" in
  "SOME_WORD" ) echo "found";;
esac

既然我看到你还有其他类似的线程,你为什么还要解决这个问题呢?

目标是节省时间echo take time awk notvar=$READ\u LINE在ksh中不是有效的语法@莉迪亚:什么版本的ksh?你在用什么/bin/ksh/usr/bin/ksh或/bin/sh作为脚本的第一行shebang?
set -- $READ_LINE
case "$2" in
  "SOME_WORD" ) echo "found";;
esac