2012-06-20 2 views
4
zgrep -i XXX XXX | grep -o "RID=[0-9|A-Z]*" | 
    uniq | cut -d "=" -f2 | 
    xargs -0 -I string echo "RequestID="string 

Мой выходxargs: String конкатенации

RequestID=121212112 
8127127128 
8129129812 

Но мое требование, чтобы иметь идентификатор запроса приставкой, прежде всего на выходе. Подсказка:

+0

Так как я новичок в этом ,, Я не знаю формальности .. Спасибо, что это, и я, конечно, принять ответ – User

ответ

9

Пробег -n опция xargs.

-n Макс-арг

Использование в большинстве макс-Args аргументы в командной строке. Меньше аргументов max-args будет использоваться, если размер (см. Параметр -s) превышен, , если не указана опция -x, и в этом случае xargs выйдут.

Пример:

$ echo -e '1\n2' | xargs echo 'str =' 
str = 1 2 

$ echo -e '1\n2' | xargs -n 1 echo 'str =' 
str = 1 
str = 2 
+0

Благодарим Вас за комментарии ... Теперь моя проблема в том, что это xargs -L 1 -I строка echo «RequestId =» string | xargs -L 1 -I строка zcat XXXX.gz | agrep -dEOE string ... Теперь строка xargs должна проходить через следующий, который будет agrep, возьмет. Но я не получаю желаемого результата. Любые идеи об этом .. Спасибо ... – User

+0

@User Я не уверен, что понимаю. Вы должны показать пример ввода и нужный вывод так же, как и в этом вопросе. Может, начать новый вопрос? –

5

У меня была аналогичная задача, и это работает для меня. Это может быть то, что вы ищете:

zgrep -i XXX XXX | grep -o "RID=[0-9|A-Z]*" | uniq | cut -d "=" -f2 | xargs -I {} echo "RequestID="{}

Смежные вопросы