Как я использую grep для генерации

Как я генерировал бы список, который отображает самые низкие числа в файле?

напр.

  1. Элемент списка 2 476 Jackie Woodson: менеджер:: продажи::05/01/59: 110000
  2. Элемент списка 2000 Jack Wilson: директор:: учетные записи::04/19/55: 80000
  3. Элемент списка 7 700 Wilson Ali: executie:: учетные записи::08/30/56: 90000
  4. Элемент списка 3 364 Bill Wilcocks: менеджер:: продажи::12/12/55: 65000

  5. Элемент списка 4 290 Neil O'bryan: руководитель:: учетные записи::05/01/59: 100000

  6. Элемент списка 2000 Wilson Albert: председатель:: производство::03/12/50: 125000

Я хочу перечислить шоу диапазон между 60 000 и 9000 и перечислить только тех, которые используют grep

Я попробовал

grep" [69]"..... Имя файла $

3
задан 6 November 2016 в 05:45

3 ответа

grep не делает числовых сравнений и не инструмент для использования здесь. Я использовал бы:

sort --field-separator=":" --numeric-sort --reverse --key=7 --ignore-leading-blanks filename | \
    tail --lines=3  | \
    sort --field-separator=":" --numeric-sort --key=7 --ignore-leading-blanks
2
ответ дан 1 December 2019 в 16:21

grep инструмент соответствия строки, что означает, что он только соответствует строкам, который имеет определенный текст. То, что Вы хотите, является утилитой обработки текста, такой как awk, который может сделать сравнения.

$ awk -F ':' '$NF > 60000 && $NF<90000' list.txt                                  
List item 2000 Jack Wilson :director: :accounts: :04/19/55: 80000
List item 3364 Bill Wilcocks :manager: :sales: :12/12/55: 65000

способ, которым это работает, прост:

  • -F ':' говорит, что awk для обработки каждой строки как набора слов, разделенных двоеточиями
  • '$NF > 60000 && $NF<90000', посмотрит на последний Word $NF и проверит, больше ли это, чем 60 000 И (&& часть) 90000.
1
ответ дан 1 December 2019 в 16:21
grep -P '\b[6-8]\d{4}\s* ex3
0
ответ дан 1 December 2019 в 16:21

Другие вопросы по тегам:

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