9

複数行の bash 変数から特定の行を出力しようとしています。私は以下を見つけました:

while read line; do echo LINE: "$line"; done <<< "$x"

ここで、x は変数になりますが、これは 1 行だけではなく、すべての行を出力するだけです (たとえば、1 行目など)。これをすべてではなく特定の行を印刷するように適応させるにはどうすればよいでしょうか? (代わりに変数をファイルに書き込む必要がないようにしたい)

4

3 に答える 3

12

N 番目の行を印刷するには:

sed -n ${N}p <<< "$x"

または(より移植性が高い):

sed -n ${N}p << EOF
$x
EOF

また

echo "$x" | sed -n "$N"p

また

echo "$x" | sed -n ${N}p

または (特定のケース N==3 の場合)

echo "$x" | sed -n 3p

また

while read line; do echo LINE: "$line"; done <<< "$x" | sed -n ${N}p

また

while read line; do echo LINE: "$line"; done << EOF | sed -n ${N}p
$x
EOF
于 2013-04-03T01:14:38.340 に答える