使用地址格式时,sed不打印行

使用地址格式时,sed不打印行,sed,Sed,sed不会将第1行打印到第545行。以下命令的结果为空resultfile.txt。有人能说什么是正确的命令吗 RESULT=545;sed -n '1, $RESULT p' Configuration.txt > resultfile.txt 使用双引号以便展开$RESULT: RESULT=545;sed -n "1, $RESULT p" Configuration.txt > resultfile.txt 顺便说一句,以下内容更简单: head -$RESULT Con

sed不会将第1行打印到第545行。以下命令的结果为空resultfile.txt。有人能说什么是正确的命令吗

RESULT=545;sed -n '1, $RESULT p' Configuration.txt > resultfile.txt

使用双引号以便展开$RESULT:

RESULT=545;sed -n "1, $RESULT p" Configuration.txt > resultfile.txt
顺便说一句,以下内容更简单:

head -$RESULT Configuration.txt > resultfile.txt
而且,如果您的文件很大,当您到达第545行时,它将立即退出,并且效率更高:

sed ${RESULT}q Configuration.txt > resultfile.txt

以上不是一个
sed
问题,而是一个shell问题:您使用了单引号,这会抑制变量扩展

$ echo '$PWD'
$PWD
$ echo $PWD
/tmp
$ echo "$PWD"
/tmp

要么完全没有引号,要么是双引号,都允许shell展开变量。(完全没有引号意味着shell扩展所有内容;双引号禁止全局搜索、重定向等。)

双引号解释变量,在第一个
之后没有空格,
使用
q
退出
sed
(尽管在使用
sed
编辑stdin时,要小心管道破裂错误)。