複数の行(テキスト)を持つ変数がある場合、最後の行を取得するにはどうすればよいですか?
私はすでに最初の行を取得する方法を見つけました:
STRING="This is a
multiple line
variable test"
FIRST_LINE=(${STRING[@]})
echo "$FIRST_LINE"
# output:
"This is a"
おそらく最後の行に演算子があるはずです。または、少なくとも、@
最初の行が出てきます。
Bash文字列操作の使用:
$> str="This is a
multiple line
variable test"
$> echo "${str##*$'\n'}"
variable test
${str##*$'\n'}
は、文字列の先頭から\n
までの最長一致を削除し、入力の最後の行のみを残します。
これを行う簡単な方法は、tail
を使用することです。
echo "$STRING" | tail -n1
STRING
から1行に1つの要素を持つ配列が必要な場合は、使用します
readarray -t lines <<< "$STRING"
その場合、最初の行は${lines[0]}
、最後の行は${lines[-1]}
。 bash
の古いバージョンでは、負のインデックスは許可されず、最後のインデックスを手動で計算する必要があります:${lines[${#lines[@]}-1]}
。