我有以下脚本
#!/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
附:
/usr/bin/awk -v n="$num"'/chapter:/{f=0}/chapter: n/{f=1} f' $file
不起作用- 我无法使用任何其他工具来实现此目的,因为
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/