Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 将NR值传递给AWK中的变量_Regex_Bash_Shell_Sed_Awk - Fatal编程技术网

Regex 将NR值传递给AWK中的变量

Regex 将NR值传递给AWK中的变量,regex,bash,shell,sed,awk,Regex,Bash,Shell,Sed,Awk,我们能否将NR传递给awk中的变量 我有一个脚本是这样的: awk -v { blah blah.. .......... count-- print count } if (count==0) {print "The end of function" print NR exit } 这是代码的awk部分。我想将NR作为以下内容传递给var2: sed -n ''"$var1"',

我们能否将
NR
传递给
awk
中的变量

我有一个脚本是这样的:

     awk -v { blah blah..   
     ..........
     count--
     print count
    }
     if (count==0)
    {print "The end of function"
     print NR 
     exit
     } 
这是代码的awk部分。我想将
NR
作为以下内容传递给var2:

    sed -n ''"$var1"','"$var2"'p'
必须重复使用几次


感谢您的回复。

我不知道您想用
awk
sed
NR
变量实现什么。你是说文件的行数吗

此命令获取它:

wc -l infile | sed -e 's/ .*$//'
因此,将其与
-v
一起使用,切换到
awk
,并根据需要使用它。下一个命令将打印
10
,因为
infle
在我的计算机中有十行

awk -v num_lines=$(wc -l infile | sed -e 's/ .*$//') 'BEGIN { print num_lines }'

如果你只想打印行的某个子集,你就快到了。v标志是前进的方向

awk -v var1=15 -v var2=25 'NR>=var1 && NR<=var2 {blah blah ...}'

awk-v var1=15-v var2=25'NR>=var1&&NR正如其他人所建议的,有更好的方法来实现总体目标

但是,为了回答您的具体问题:

var2=$(awk 'END {print NR}' inputfile)

并在AWK脚本中添加您可能需要的任何其他内容。

为什么不在AWK脚本中进行替换?为什么需要sed?是的,但我无法使用awk中的变量定义范围:awk'NR>=“var1”&&NR是的,您可以:
NR>=var1&&NR@Geekasaur-这些引号使其成为文字字符串,而不是变量。我希望根据条件使用awk函数的出口行。print NR将输出提供给stdout,但我不能将其传递给变量吗?传递bash变量以代替15和25&它的工作原理与预期一样…感谢您的时间:)