我正在尝试使用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识别,但是我的第二个变量是?
根据其他帖子(包括标记为重复的帖子),我还是不清楚,如何更改代码以按预期读取第一个变量。我是一个相对较新的人,所以我们将不胜感激。