我看到了很多示例和手册页,介绍了如何使用 sed、 awk 或 gawk 进行搜索和替换。
但是在我的例子中,我有一个正则表达式,我想对一个文本文件运行它来提取特定的值。我不想做搜索和替换。这是从 bash 调用的。让我们举个例子:
正则表达式示例:
.*abc([0-9]+)xyz.*
示例输入文件:
a
b
c
abc12345xyz
a
b
c
尽管这听起来很简单,但我不知道如何正确地调用 sed/awk/gawk。我希望做的是,从我的 bash 脚本有:
myvalue=$( sed <...something...> input.txt )
我试过的方法包括:
sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file
sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing