соответствие набора строк grep после определенное слово

Вот тот, который работает в обратном порядке:

xargs -I{} -n1      \
    expr {}\ {} : '[^0-9]*\(.* .ed\).*'

expr получает две копии каждой строки подряд и делится пробелом как его первый аргумент. Например:

expr 'TedBuilder20000 TedBuilder20000' : '[^0-9]*\(.* .ed\).*'

И поэтому его сопоставленные результаты - если таковые имеются - равны Зарплата , затем Имя :

printf %s\\n BobJanitor20000 TedBuilder30000 \
             NedFighter25000 KitTeacher40000 |
xargs -I{} -n1      \
    expr {}\ {} : '[^0-9]*\(.* .ed\).*'

30000 Ted
25000 Ned

Это работает, однако:

xargs sh -c <input  '
      for a do case $a in (?ed*) ! :; esac  ||
            printf  %-4.3s${a##*[!0-9]}\\n "$a"
      done' '' 

Ted 30000
Ned 25000
0
11.05.2018, 01:22
1 ответ

Necesita PRCE para hacer eso:

grep -oP 'user="\K[^"]*' inputfile
0
28.01.2020, 04:23

Теги

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