可能重复:Bash tool to get nth line from a file
我需要选择第n行一个文件,这行定义为变量PBS_ARRAYID
另一个问题(上面的链接)中的接受解决方案是:
sed 'NUMq;d' job_params
我试图适应变量(实际上我尝试了很多东西,但是更有意义的那个):
sed "${PBS_ARRAYID}q;d" job_params
但是我收到以下错误:
sed: -e expression #1, char 2: invalid usage of line address 0
我做错了什么?
答案 0 :(得分:0)
这是一个awk
示例。
假设我们有这个文件:
cat file
1 one
2 two
3 three
4 four
5 five
6 six
7 seven
8 eight
9 nine
然后我们有变量:
var="four"
number=2
然后这个awk
给出了:
awk '$0~v {f=NR} f && f+n==NR' v="$var" n="$number" file
6 six
答案 1 :(得分:0)
您的解决方案是正确的:
sed "${PBS_ARRAYID}q;d" job_params
唯一的问题是sed
认为第一行是第1行(感谢rici),因此PBS_ARRAYID必须在[1,X]范围内,其中X是输入文件中的行数,或者:
wc -l job_params