[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Shifting a block of text
From: |
Kerin Millar |
Subject: |
Re: Shifting a block of text |
Date: |
Wed, 8 Dec 2021 09:03:56 +0000 |
On Wed, 8 Dec 2021 08:37:52 +0100 (CET)
fatiparty--- via <help-bash@gnu.org> wrote:
>
> Trying to adapt the following function to use all arguments rather than just
> the first one.
> The code should introduce nc spaces ahead of the start of each argument
> passed.
> Each shifted argument must be on new line. The first argument ins numeric,
> defining
> the amount of shift.
>
> shifted-block ()
> {
> if (( $# == 1 )); then
> nc=0 ; arg="$1"
> elif (( $# >= 2 )); then
> nc="$1" ; arg="$2"
> else
> nc=0 ; arg="$1"
> fi
>
> nw=$(( nc + ${#arg} ))
> printf "%${nw}s\n" "$arg"
> }
shifted-block() {
local n=$1 spaces
shift
if (( $# )); then
printf -v spaces "%${n}s"
printf '%s\n' "${@/#/$spaces}"
fi
}
--
Kerin Millar
Re: Shifting a block of text,
Kerin Millar <=