来自我的ksh我有
[[ ` echo $READ_LINE | awk '{print $2}' ` != SOME_WORD ]] && print "not match"
我可以得到如何在没有echo命令的情况下验证相同的建议吗? (也许awk / sed对此很好吗?)
利迪娅
答案 0 :(得分:0)
这样的事情会起作用:
awk -v x="$READ_LINE" -v y="SOME_WORD" 'BEGIN { split(x, a); if (a[2] != y) print "not match";}'
但是$READ_LINE
来自哪里?你想达到什么目的?可能还有一个很好的普通sh
或ksh
解决方案。
我非常怀疑您声称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
为什么你还在解决这个问题,因为我发现你有其他类似的线程。?