awk - 如何在awk中按变量搜索

标签 awk pattern-matching

我正在尝试使用 awk 获取给定模式之后的第 N 行。 问题是 awk 从字面上搜索模式:

awk -v patt=${1} -v rows=${2}'NR==p {print} /patt/ {p=NR+rows}'

如何转义“patt”变量?

最佳答案

使用 awk 匹配运算符代替斜线:

awk -v patt=${1} -v rows=${2} 'NR==p {print} $0 ~ patt {p=NR+rows}'

关于awk - 如何在awk中按变量搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7820115/

相关文章:

haskell - 跨守卫模式共享定义

javascript - 当字符串包含 2 个非连续的正斜杠(负向前瞻)时,正则表达式返回 false

unix - AWK 使用多个空格作为分隔符

bash - 将 bash 变量传递给 awk 以提取某些位置的字符

linux - 如果文件的列匹配,则 AWK 过滤文件

bash - 使用 AWK 将文本文件中的每个单词换行

scala - 为什么 Scala 模式匹配不支持 `s"$var"`?

sql - 每行的正则表达式的匹配计数

sql - PostgreSQL LIKE 子句中的正则表达式

bash - 如何使用 AWK 和 ffmpeg 提取时间码