文字列を半分に分けて順番に印刷したい。たとえば、
abcdef
入力する
abc
def
これを行う簡単な方法はありますか、それともいくつかの文字列処理が必要ですか?
ベストアンサー1
変数の前半は次のとおりです。
${var:0:${#var}/2}
変数の後半は次のとおりです。
${var:${#var}/2}
したがって、次のものを使用できます。
printf '%s\n' "${var:0:${#var}/2}" "${var:${#var}/2}"
次の awk コマンドを使用することもできます。
awk 'BEGIN{FS=""}{for(i=1;i<=NF/2;i++)printf $i}{printf "\n"}{for(i=NF/2+1;i<=NF;i++){printf $i}{printf "\n"}}'
$ echo abcdef | awk 'BEGIN{FS=""}{for(i=1;i<=NF/2;i++)printf $i}{printf "\n"}{for(i=NF/2+1;i<=NF;i++){printf $i}{printf "\n"}}'
abc
def