On Thu, Nov 9, 2023, 11:08 PM alex xmb sw ratchev <fxmb...@gmail.com> wrote:

>
>
> On Thu, Nov 9, 2023, 10:56 PM Greg Wooledge <g...@wooledge.org> wrote:
>
>> On Thu, Nov 09, 2023 at 10:17:35PM +0100, Andreas Schwab wrote:
>> > On Nov 09 2023, Greg Wooledge wrote:
>> >
>> > >     re='^\[([0-9]+)\]'
>> > >     jobspecs=()
>> > >     while IFS= read -r line; do
>> > >         if [[ $line =~ $re ]]; then
>> > >             jobspecs+=( "%${BASH_REMATCH[1]}" )
>> > >         fi
>> > >     done < <(jobs -l)
>> >
>> > That fails for multi-line commands that happen to contain matches for
>> > re.
>> >
>> > $ (sleep 100; printf $'\n[100]\n') &
>>
>> Fair enough.  I believe *nothing* would work in that case; the output of
>> "jobs -l" cannot be safely parsed in its current form.
>>
>> Adding a NUL-delimited output option might work around that, but if we're
>> modifying the jobs builtin, we might as well just add the -i or -j option
>> instead.
>>
>
> ther'd be few different values for seps , i think ifs is nearly none , so
> , one is per element , one per record
> others may also exist
> so just two constant opts to align extend usage
>

i d have a half example about such formatting for printf

( pre ) ( sep for 2+ elements ) ( elem pre ( also elem N pre ) ) $elem (
elem stu or and N th ) ( end )

missing some terms also ..

>

Reply via email to