gpt4 book ai didi

linux - 使用正则表达式对文件运行 awk

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:30 24 4
gpt4 key购买 nike

我想在一个文件中找到所有出现的 INPUT,JUST INPUT。我有以下内容,但它会找到带有 INPUT* 的所有内容

awk '{for(i=1;i<=NF;i++){if($i~/^INPUT/){print $i}}}' 

虽然我想支持它,所以如果我有 INPUT* 或 INPUT?或输入。 (任何正则表达式)而不是上面的 INPUT,它应该适用于此。

有人知道如何解决上述问题吗?谢谢。

我正在尝试使用 $INPUT 在 perl 脚本中执行以下操作

`awk '{for(i=1;i<=NF;i++){if($i~/^$INPUT$/){print $i}}}' $file`

但我无法让它发挥作用?

最佳答案

如果你想使用反引号,然后转义所有美元符号(假设你有一些东西,例如 $INPUT 中的“INPUT”)::

`awk '{for(i=1;i<=NF;i++){if(\$i~/^$INPUT\$/){print \$i}}}' $file | wc -l`;

awk 也可以为您计算匹配项的数量(这个每行计算一次):

`awk '/\y$INPUT\y/{s++} END{print s}' $file`;

并使用推荐的原生 Perl:

my $cnt;
open my $f, "<", "input" or die("$!");
while (<$f>) {
$cnt++ while /\bINPUT\b/g;
}
close $f;
print $cnt;

关于linux - 使用正则表达式对文件运行 awk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16410270/

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