【发布时间】:2016-08-31 11:48:48
【问题描述】:
我有一个如下所示的测试数据文件
PAT1 3 - 第一个块 4 PAT2 PAT3 7 - 第二块 PAT4 PAT5 10 - 第三块 PAT6 PAT7 12 - 第四块如果我从 shell 运行以下命令行来查找 PAT1 和 PAT5 之间的行,包括包含两个字符串的行,它在 shell 提示符下工作得很好。
awk '/PAT1/, /PAT5/ ' 测试文件结果如下:
PAT1 3 - 第一个块 4 PAT2 PAT3 7 - 第二块 PAT4 PAT5但是如果我想在 shell 脚本文件中执行这个 awk 命令行,它就不再起作用了,而且 results.txt 文件中没有任何内容。
#!/bin/sh
Data="PAT1"
Data2="PAT2"
echo "$Data, $Data2"
awk '/$Data/, /$Data2/' test_file > results.txt
我认为 awk 代码的语法在 shell 脚本中是错误的。我试图阅读页面 link,但我无法快速弄清楚我的 shell 脚本中的 awk 代码有什么问题。
【问题讨论】: