我想从X
行号到Y
行号打印一个文本文件
X
&的值 Y
是通过在文本文件中搜索特定行(在本例中为页码)来确定的
我通过以下命令搜索该行
echo -n |grep -nr "Page # 2" FileName.txt |cut -f1 -d: ; echo -n |grep -nr "Page # 3" FileName.txt |cut -f1 -d:
为此我得到了输出
67
128
我想将此输出提供给下面的命令
sed -n 'X,Yp' FileName.txt
但我把它们当作两条不同的线,我怎样才能将它提供给sed
命令
之后我想将上述命令的结果提供给lp
类似这样的命令......
sed -n 'X,Yp' FileName.txt | lp -dmyprinter
可以在不创建文件的情况下完成此操作吗?
答案1
无需2个阶段预先找出线路。只需使用以下命令即可完成整个操作sed
:
sed '/Page # 2/,/Page # 3/!d' < FileName.txt
答案2
尝试用变量保留值,如下所示:
FROM_LINE=`echo -n |grep -nr "Page # 2" FileName.txt |cut -f1 -d: `
TO_LINE=`echo -n |grep -nr "Page # 3" FileName.txt |cut -f1 -d:`
然后将这些变量与 sed 一起使用:
sed -en "${FROM_LINE},${TO_LINE}p" FILE