2009-03-26, 21:22(-04), Chet Ramey:
> Chris F.A. Johnson wrote:
>
>> Chet, how about an option to mapfile that strips leading and/or
>> trailing spaces?
>>
>> Another useful option would be to remove newlines.
>
> I'm disinclined to add one, since it's easy enough to use the
> ${line##[ ]} and ${line%%[ ]} constructs to remove
> leading and trailing whitespace. You can use the same expansions
> or pattern substitution to remove newlines (using $'\n' to denote
> a newline).
[...]
That removes only one blank, to strip all blanks, you'd need to
enable ksh extended globbing (shopt -s extglob) and do
${line##+([[:blank:]])}
Or POSIXly:
${line#"${line%%[![:blank:]]*}"}
Not extremely legible.
Note that "read" does strip leading and trailing blanks (as long
as those blank characters are in IFS and as long as a variable
name is provided to it), so it's not completely unreasonable to
ask that "readarray" (aka mapfile) has an option to do that as
well.
--
Stéphane