gpt4 book ai didi

regex - 将 shell 参数传递给 awk 正则表达式

转载 作者:行者123 更新时间:2023-11-29 09:47:28 28 4
gpt4 key购买 nike

我有以下脚本

#!/bin/bash
file="path/to/file"
/usr/bin/awk '/chapter:/ {f=0} /chapter: 25/ {f=1} f' $file

如何使用变量的值而不是 25

像这样:

#!/bin/bash
file="path/to/file"
num=25
/usr/bin/awk '/chapter:/ {f=0} /chapter: <num>/ {f=1} f' $file

附注

  1. /usr/bin/awk -v n="$num"'/chapter:/{f=0}/chapter: n/{f=1} f' $file 不工作
  2. 我不能为此使用任何其他工具,因为 awk 是我想要做的最快的工具

有什么想法吗?

最佳答案

除了构建正则表达式的第二部分,您的方向是正确的。您可以使用:

awk -v n="$num" '/chapter:/{f=0} $0 ~ "chapter: " n {f=1} f' file

您需要使用变量 n 构建正则表达式,并使用 ~ 运算符进行正则表达式匹配。

关于regex - 将 shell 参数传递给 awk 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29182018/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com