Linux 从一个字符串中获取一行,其中必须获取的行号存储在一个变量中?

Linux 从一个字符串中获取一行,其中必须获取的行号存储在一个变量中?,linux,bash,sed,sh,Linux,Bash,Sed,Sh,我试图得到一个变量的特定行。我必须获取的行存储在I中。我的代码现在看起来像这样 $(echo“$data”sed“$iq;d”) 看起来我把I放错了,给I放一个数字很好,但是$I可以得到整个字符串 我还没有找到一个可以使用变量的解决方案,而且我对bash不太熟悉,希望能得到帮助 编辑:一点上下文 i=5 数据=$(netstat-a | grep ESTAB) 行=$(echo“$data”| sed“${i}p”) echo$line使用sed-n“${i}p” 例如: i=4; seq 1

我试图得到一个变量的特定行。我必须获取的行存储在
I
中。我的代码现在看起来像这样

$(echo“$data”sed“$iq;d”)

看起来我把
I
放错了,给
I
放一个数字很好,但是
$I
可以得到整个字符串

我还没有找到一个可以使用变量的解决方案,而且我对bash不太熟悉,希望能得到帮助

编辑:一点上下文

i=5
数据=$(netstat-a | grep ESTAB)
行=$(echo“$data”| sed“${i}p”)
echo$line
使用
sed-n“${i}p”

例如:

i=4; seq 1 10 | sed -n "${i}p"
输出:

4
奖金:

i=5
readarray -O 1 -t data < <(exec netstat -a | grep ESTAB)  ## Stores data as an array of lines starting at index 1
line=${data[i]}
echo "$line"
# printf '%s\n' "${data[@]}"  ## Prints whole data.
i=5

readarray-O 1-t数据<下面是在BASH中实现这一点的方法:

IFS=$'\n' arr=($data)
echo "${arr[$i]}"

@user000001 hmm,只打印出一个空行。我将在上下文中编辑更多的行,如果这会有帮助的话,那就太好了!能解释一下你的和我试过的有什么不同吗?不同的报价风格和诸如此类的东西并没有把我搞糊涂BASH@mbridges第一件事是你引用的话。单引号中的字符串不展开变量。双引号中的是。另外,
$iq
被解析为单个参数。你至少应该做
${i}q
。看起来您的代码也能正常工作,只是需要一些调整。它的最终形式应该是
sed“${i}q;d”