Как использовать awk, чтобы найти строку, начинающуюся с переменной - PullRequest
1 голос
/ 12 марта 2019

Я знаю 2 вещи о awk:

1.

PAT='aGeneName'
awk -v var="$PAT" '$3 ~ var {print $0}' file.txt  # will print the line where 3rd field includes the variable $PAT

2.

awk '$3 ~ /^aGeneName/' file.txt # will print the line where 3rd field starts with string "aGeneName"

Но я хочу, чтобыкомбинация этих двух: я хочу напечатать строку, где 3-е поле начинается с переменной $ PAT, что-то вроде

PAT='aGeneName'
awk -v var="$PAT" '$3 ~ /^var/ {print $0}' file.txt  # but this is wrong, since variable can't be put into //

1 Ответ

1 голос
/ 12 марта 2019

Один путь такой:

PAT='aGeneName'
awk -v var="$PAT" '$3 ~ "^" var {print $0}' file.txt

И {print $0} можно сохранить здесь, это подразумевается.

Другой способ, когда шаблон var представляет собой простую строку, без RegEX символа внутри:

PAT='aGeneName'
awk -v var="$PAT" 'index($3, var)==1' file.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...