xargs: Имеет ли порядок опций значение?

Попробуйте протестировать

sed '
    /Start/! b
    :a
    /\nStart$/{
        P
        D
    }
    N
    $b
    /Stop\nRec/! ba
    d
' Input.file
3
24.08.2017, 01:51
1 ответ

Когда параметры, заданные для xargs, конфликтуют, порядок может иметь значение.

IEEE Std 1003.1 -2008, 2016 Edition/Open Group Base Specifications Issue 7 добавлен следующий текст 1 в спецификацию xargs:

The -I, -L, and -n options are mutually-exclusive. Some implementations use the last one specified if more than one is given on a command line; other implementations treat combinations of the options in different ways.

Это систематизирует поведение многих реализаций xargs, начиная с исходной версии в PWB/Unix, чья справочная страница говорит

When there are flag conflicts (e.g., -l vs. -n), the last flag has precedence.

В версии xargs для GNU -Lотключает любую предыдущую опцию -I. Итак, во втором примере

echo foo | xargs -I '{}' -L 1 echo '{}'

{}— это обычный аргумент, передаваемый в echoбез подстановки.

[1] По сравнению со IEEE Std 1003.1, 2004 Edition/Open Group Base Specifications Issue 6 .

7
27.01.2020, 21:13

Теги

Похожие вопросы