awk / sed用于测试命令

时间:2010-08-30 08:13:47

标签: awk ksh

来自我的ksh我有

  [[  ` echo $READ_LINE | awk '{print $2}' ` != SOME_WORD  ]] && print "not match"

我可以得到如何在没有echo命令的情况下验证相同的建议吗? (也许awk / sed对此很好吗?)

利迪娅

4 个答案:

答案 0 :(得分:0)

这样的事情会起作用:

awk -v x="$READ_LINE" -v y="SOME_WORD" 'BEGIN { split(x, a); if (a[2] != y) print "not match";}'

但是$READ_LINE来自哪里?你想达到什么目的?可能还有一个很好的普通shksh解决方案。

我非常怀疑您声称echo(可能是内置shell)花费的时间比awk多。这是plain sh版本:

set -- $READ_LINE
[ x$2 != xSOME_WORD] && echo "not match" 

ksh solution of Dennis Williamson看起来最适合您的情况。

答案 1 :(得分:0)

read ign val && [ X$val != XSOME_WORD ] && echo "not match"

答案 2 :(得分:0)

这会按字分割,并测试第二个单词。

var=($READ_LINE)
[[  ${var[1]} != SOME_WORD  ]] && print "not match"

你想要完成的是什么?你的几个问题几乎相同。

答案 3 :(得分:0)

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

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

为什么你还在解决这个问题,因为我发现你有其他类似的线程。?