Рейтинг:-1

соответствовать всем пунктам, которые у меня есть достаточно, чтобы позволить себе. простое регулярное выражение

флаг in

Взяв самоучитель по Linux, я продолжаю зацикливаться на этом

Мой вывод продолжает включать «часы 15», пожалуйста, помогите

#!/бин/ш
#comment single RegEx для соответствия всем элементам, на которые у вас достаточно рупий 
sed '1d' hw0207.txt | grep -v [2-9][0-9]
#comment grep будет фильтровать все числа больше 12, -v означает, что нет
#comment first sed должен был удалить первую строку

регулярное выражение для соответствия направлениям

Я пытаюсь написать одно регулярное выражение для соответствия всем элементам, на которые у вас достаточно рупий. с не просто сопоставлять линии, вы должны сопоставлять линии, которые вы можете себе позволить, чтобы, если цены изменятся, ответ все еще был правильным. У вас есть только 12 рупий, если вы хотите купить что-то еще, вам нужно быть немного богаче.

Входной файл (hw0207.txt) Ожидаемый результат скрипта
стоимость товара
лампадное масло 5
веревка 10
часы 15
бомбы 20
флаг ar
Какой дистрибутив и версию Linux вы используете? Ваше регулярное выражение должно исключать числа от 20 до 99. Вот почему 15 не исключается.
CryptoTrader avatar
флаг in
отображать только то, что больше 12 или меньше
CryptoTrader avatar
флаг in
я хочу, чтобы он отображал только элементы, которые равны 12 или меньше, даже если значение элемента изменяется
CryptoTrader avatar
флаг in
Убунту 20.04.3 ЛТС
Рейтинг:0
флаг ar

Есть много способов сделать это. Я покажу два:

Исключать

Этот метод использует -v вариант в grep как показано в вопросе выше. Я разобью его на два набора чисел, разделенных условием ИЛИ. Первый набор чисел включает от 13 до 19. Второй набор чисел — от 20 до 99. Если любое из этих условий выполнено, они не будут выбраны в выходных данных.

sed '1d' hw0207.txt | grep -v '1[3-9]\|[2-9][0-9]'

Выбирать

Этот подход выбирает строки с номерами меньше 12. Мы снова разбиваем их на два набора чисел. Первая — это однозначные числа от 1 до 9, а вторая — двузначные числа от 10 до 12.

sed '1d' hw0207.txt | grep '[1-9]$\| 1[0-2]$'

Обратите внимание на начальные пробелы и $ в конце.

Поочередно:

sed '1d' hw0207.txt | grep -w '[1-9]\|1[0-2]'

Надеюсь это поможет

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.