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&它的工作原理与预期一样…感谢您的时间:)