在sed中使用bash变量作为范围

时间:2013-08-09 19:48:53

标签: bash sed

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

打印文件/ proc / cpuinfo

的5-10行

我想使用像

这样的东西
start=5
end=10
sed -n '$start,$end p' < /proc/cpuinfo

这样我就可以通过脚本更改start和end的值。

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:0)

如果您想使用sed以外的其他内容,例如awk,你可以试试这个:

start=5; 
end=10; 
awk 'NR>='$start' && NR<='$end' {print $0}' /proc/cpuinfo

NR是文件中的行/行号。