linux - awk 没有按预期工作

标签 linux bash shell awk

我假设这是一个非常简单的问题。我以前在脚本中多次使用以下命令没有问题。

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/

相关文章:

python - 通过Python编写的脚本远程终止进程(使用SSH)时处理报价语法错误

linux - Linux/Unix 应用程序的源代码最适合保存在哪里?

linux - 如何在 linux 内核模块之间共享缓冲区

bash - sed 在 conf 中替换 2 种不同的模式

linux - 如何在 unix shell 中转置行和列?

ruby - 试图杀死端口 8000 混淆的进程

linux - 如何从一个文件中查找另一个文件中的单词?

Linux 日期 : invalid date

python - 你如何在 Python/Bash/AWK 中使用二进制转换?

Bash 脚本和/bin/bash^M : bad interpreter: No such file or directory