我正在尝试获取变量的特定行。我必须得到的行存储在i
中。我的代码现在看起来像这样。
$(echo "$data" | sed '$iq;d')
看起来我将i
置于错误的位置,为i
输入一个数字可以正常工作,但$i
可以获得整个字符串。
我还没有找到适用于变量的解决方案,而且我对bash不太熟悉并且会感谢帮助,
编辑:一点上下文
i=5
data=$(netstat -a | grep ESTAB)
line=$(echo "$data" | sed "${i}p")
echo $line
答案 0 :(得分:1)
改为使用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.
答案 1 :(得分:0)
以下是BASH本身可以做到的方法:
IFS=$'\n' arr=($data)
echo "${arr[$i]}"