如何使用 while 循环变量和管道设置变量到 awk?
这是我当前的代码,我尝试了多种方法,但似乎找不到答案。
while IFS= read -r var
do
MyNewVariable= ($var | awk '{print $1}')
我知道我得到了正确的行,但在新的变量行上得到了错误的命令。这可能吗?
答案1
很不清楚你在这里问什么......但我会做很多事情。请修改您的问题,并牢记以下内容。
首先..阅读的部分
$var | awk '{print $1}'
要做的就是解释值“var”的内容并执行该命令,将其通过管道传输到 awk,然后打印第一个工作。由于 $var 中的内容不太可能是有效命令,因此可能会失败
您尝试的正确语法是:
command | while IFS= read -r var; do
echo $var
done
如果您要处理命令的输出,或者:
while IFS= read -r var; do
echo $var
done < input_file
如果您要处理文件的内容。
但实际上,包裹“while”结构是没有意义的,因为你可以轻松地这样做:
command | awk '{ print $1 }'
或者
awk '{ print $1 }' < file
如果你想设置一个变量在 awk 中使用,你可以这样做
awk -v foo=$var '{ print foo }'
您还可以在 awk 中设置 IFS
awk 'BEGIN { FS=":" } { print $1 }'