我假设这是一个非常简单的问题。我以前在脚本中多次使用以下命令没有问题。
display=/some/file/with/data
sed -i "s/$(more ${display} | grep 110 | gawk '{ print $3 }')/"replacestring"/g" ${display}
此命令从未有过问题。
我创建了一个脚本,它简化了所需的一切并具有以下代码:
displayText=$(more ${display} | grep 110 | gawk '{ print $3 }')
我不断收到
line 2: syntax error: unexpected end of file.
我对 Linux 非常熟悉,所以这个问题一直很烦人,因为我没有找到答案。请协助。
最佳答案
不确定为什么要使用 more
。
您在 awk 脚本周围也有反引号,您应该在其中使用单引号。
displayText=$(cat ${display} | grep 110 | gawk '{ print $3 }')
您会被告知这是无用的 cat 命令(不需要 cat 命令,因为 grep 可以读取文件)。你可以这样做:
displayText=$(grep 110 ${display} | gawk '{ print $3 }')
由于 awk 也可以搜索,这可以进一步简化为:
displayText=$(gawk '/110/ {print $3}' ${display})
关于linux - awk 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35495187/