Как я генерировал бы список, который отображает самые низкие числа в файле?
напр.
Элемент списка 3 364 Bill Wilcocks: менеджер:: продажи::12/12/55: 65000
Элемент списка 4 290 Neil O'bryan: руководитель:: учетные записи::05/01/59: 100000
Элемент списка 2000 Wilson Albert: председатель:: производство::03/12/50: 125000
Я хочу перечислить шоу диапазон между 60 000 и 9000 и перечислить только тех, которые используют grep
Я попробовал
grep" [69]"..... Имя файла $
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
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.