我试图用awk获得给定模式后的第N行。 问题是awk搜索模式:
awk -v patt=${1} -v rows=${2}'NR==p {print} /patt/ {p=NR+rows}'
如何逃脱“patt”的可靠性?
答案 0 :(得分:5)
使用awk匹配运算符而不是斜杠:
awk -v patt=${1} -v rows=${2} 'NR==p {print} $0 ~ patt {p=NR+rows}'
答案 1 :(得分:1)
我设法用双引号
让它运转起来patt=${1}
awk -v rows=${2} "NR==p {print} /${patt}/ {p=NR+rows}" $3
答案 2 :(得分:0)
包含awk程序的字符串没什么特别之处,所以你可以像往常一样在shell中构建它,例如:
awk -v rows=${2}'NR==p {print} /'"$1"'/ {p=NR+rows}'