用awk变量附加行

时间:2019-07-18 17:20:25

标签: bash awk

我正在尝试使用awk中的两个变量在模式匹配之前将字符串追加到行中。我希望单词“ Intro”出现在包含“ = 1”的行之前。

到目前为止,我已经尝试传递两个变量。当前只有第二个在工作。

file1.tsv内容:

  

* MM96 * MM96 * MM96 * MM96 * MM96 * MM96 * MM96
  * * AT:E1 * AT:A1 * AT:D2 * AT:G2 * AT:B2 * AT:E3
  = 1 = 1 = 1 = 1 = 1 = 1 = 1

代码:

FM1="=1"
FZ1="Intro"

awk -v meas="${FM1}" -v zone="${FZ1}" '/meas/{print zone}1' file1.tsv

当我将“ meas”更改为= 1时,它可以正常工作,表示变量“ zone”正在工作。

awk -v meas="${FM1}" -v zone="${FZ1}" '/=1/{print zone}1' file1.tsv

结果(所需):

  

* MM96 * MM96 * MM96 * MM96 * MM96 * MM96 * MM96
  * * AT:E1 * AT:A1 * AT:D2 * AT:G2 * AT:B2 * AT:E3
简介
  = 1 = 1 = 1 = 1 = 1 = 1 = 1

在这种情况下,为什么我的第一个变量不能被awk识别,但是我的第二个变量是?

根据其他帖子(包括标记为重复的帖子),我还是不清楚,如何更改代码以按预期读取第一个变量。我是一个相对较新的人,所以我们将不胜感激。

0 个答案:

没有答案