awk没有按预期工作

时间:2016-02-19 00:31:13

标签: 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 }')

我一直在接收

  

第2行:语法错误:意外的文件结束。

我对Linux非常熟悉所以问题一直很令人恼火,因为答案已经逃脱了。请协助。

1 个答案:

答案 0 :(得分:1)

不确定您使用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})