Unix 以行号作为变量的sed

Unix 以行号作为变量的sed,unix,sed,Unix,Sed,我想使用sed获取特定的行,其中要获取的第一行和最后一行存储在变量中 这里是一个例子,我想得到第一行(这里是第5行)和最后一行(这里是第8行)之间的所有行,然后使用grep搜索特定的单词 firstLine=5 lastLine=8 sedResult="$(sed -n "$firstLine,$lastLine p" text.txt | grep word -aIi)" 但我有错误。错误如下所示: sed: -e expression #1, char 5: unexpected `,

我想使用
sed
获取特定的行,其中要获取的第一行和最后一行存储在变量中

这里是一个例子,我想得到第一行(这里是第5行)和最后一行(这里是第8行)之间的所有行,然后使用grep搜索特定的单词

firstLine=5
lastLine=8

sedResult="$(sed -n "$firstLine,$lastLine p" text.txt | grep word -aIi)"
但我有错误。错误如下所示:

sed: -e expression #1, char 5: unexpected `,'

使用变量作为行号的正确方法是什么?

您的初始表达式已打破双引号用法。应该是:

firstLine=5
lastLine=8
sedResult=$(sed -n "$firstLine,$lastLine p" text.txt)

你有什么错误?它对我有用。我会编辑我的帖子。事实上,我正在将sed与grep一起使用,因此错误可能是由此引起的。它仍然适用于我。不管怎样,它现在也适用于我。我不知道我做了什么来修复它,但这可能是引号的问题。