将 bash 变量通过管道传输到 awk 并存储输出
为了说明我的问题,
TEST="Hi my name is John"
OUTP=`echo $TEST | awk '{print $3}'`
echo $OUTP
我希望这样做是将 $TEST 变量传递到 awk 并将第三个单词存储到 $OUTP 中。
相反,我得到“嗨:未找到”,就好像它期望输入是一个文件一样。但是,如果我只传递一个字符串而不是一个变量,那就没有问题了。解决这个问题的最佳方法是什么?
谢谢大家!
To illustrate my problem,
TEST="Hi my name is John"
OUTP=`echo $TEST | awk '{print $3}'`
echo $OUTP
What I would expect this to do is pass the $TEST variable into awk and store the 3rd word into $OUTP.
Instead I get "Hi: not found", as if it is expecting the input to be a file. If I pass just a string instead of a variable, however, there is no problem. What would be the best way to approach this?
Thanks all!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
一行:
In one line :
您的代码按原样对我有用。
Your code works for me, as-is.
与其他人一样,这对我来说是有效的,但也许在第 2 行中的
$TEST
周围添加双引号 ("
) 会有所帮助。如果没有,请提供更具体的信息有关您正在运行 bash 的系统的信息可能会有所帮助。As with others, this works for me as-is, but perhaps adding double-quotes (
"
) around$TEST
in line 2 would help. If not, more specific information about the system on which you are running bash might help.重现类似行为的一种方法:
One way to reproduce similar behavior: