Bash для запуска нескольких запросов с помощью Xargs

Лучше всего это сделатьawk:

awk '/^nnn/ && length >= 25 { next } { print }' file

/^nnn/будет соответствовать заданному регулярному выражению ("строка начинается с nnn" ).length(илиlength($0))вернет длину входной строки. Если выражение совпадает и длина равна 25 или больше, строка игнорируется, в противном случае она печатается. { print }можно заменить просто 1, если набирать текст слишком долго.

Или,

awk '!/^nnn/ || length < 25' file

Это делает то же самое, но с обратным условием. Если строка не соответствует выражению или ее длина меньше 25 символов, то она печатается. Другие строки игнорируются.

Оба они производят

nnnASDDGfdgdsfn
sadbSADSDDFSDFrrrRRRRRRRttTGGGG

для заданных входных данных.

0
07.11.2019, 18:23
1 ответ

с помощью xargs вы можете вызывать bash, чтобы делать то, что хотите

cat infile \
     | xargs -I {} -P3  bash -c 'for sub in "" "www." "ftp."; do host -t a "${sub}{}" ; done '

Поверх этой команды вы можете добавить то, что хотите

cat infile \
     | xargs -I {} -P3  bash -c 'for sub in "" "www." "ftp."; do host -t a "${sub}{}" ; done '  \
     | MY_POWER_FULL_SED_OR_GREP 

или если вы хотите добавить grep в команду bash

cat infile \
     | xargs -I {} -P3  bash -c 'for sub in "" "www." "ftp."; do host -t a "${sub}{}" ; done | MY_POWER_FULL_SED_OR_GREP '
1
28.01.2020, 02:39

Теги

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