使用bash变量在sed中设置范围

3
sed -n '5,10 p' < /proc/cpuinfo 

打印文件/proc/cpuinfo中的5-10行内容

我想使用类似以下的命令:

start=5
end=10
sed -n '$start,$end p' < /proc/cpuinfo

这样我就可以从脚本中更改起始和结束值。


2
使用双引号 " 而不是单引号 ' - iamauser
2个回答

8

您需要使用双引号进行变量扩展:

start=5 end=10; sed -n "$start,$end p" < /proc/cpuinfo

0
如果你想使用除了 sed 以外的其他工具,比如 awk,你可以尝试这个方法:
start=5; 
end=10; 
awk 'NR>='$start' && NR<='$end' {print $0}' /proc/cpuinfo

NR 是文件中的行号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接