У меня есть файлы с несколькими строками и определенным символом, который может появляться только один раз (во всем файле); Мне нужен способ проверить, какие файлы хранятся.Соответствующие строки Regexp с максимальным одним символом
Скажем, у меня есть
1. 00000
2. 00050
3. 05500
4. 00000
Пять может произойти только один раз. Как я могу пометить этот файл как неверный с помощью bash и grep?
Предположим, вы сначала проверили, какие строки содержат 5. Если есть несколько строк, остановитесь. Затем посмотрите, есть ли в этой строке более пяти, если так, остановитесь. Есть лучший способ сделать это?
Прямо сейчас я бы сосчитать линии через
grep "5" file | wc -l.
Если есть больше чем один, остановить. Если нет, перейдите к одной строке. Как мне подсчитать, сколько у них 5? Сначала я использовал 5 {1}, но это, похоже, не работает - если строка «55», она просто соответствует каждому из них 5, тогда как мне нужно максимум 1 пять. Затем я подумал, что я увижу, есть ли более 5, и если да, остановитесь. Но 5 {2,} работает только тогда, когда между ними пять раз. С другой стороны, только
.*5.*5.*
матчи слов с 2 или более 5, но это кажется настолько гротескно ...
Все лучшие предложения? Я уверен, что есть, но это вечер, и это до того, как мой мозг идет сегодня, извините. Помните, я могу использовать только grep.
как насчет: '^ [^ 5] * 5 [^ 5] * $' –
Почему вы можете использовать grep - это домашнее задание? –