2015-05-17 2 views
0

возможно ли grep для любого экземпляра в файле, в котором; не до и не преуспевает какой-либо другой персонаж?grep для определенного шаблона в любом месте файла

; 

Проблема заключается в том, что не означает, что провайдер блокирует там должно быть пространство слева и справа, но и то, что; может быть единственным символом в строке. Могу ли я как-то проверить, есть ли более одного; за строку в файле? Как бы это сделать с помощью grep?

+2

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

ответ

0

Это показывает один с двумя, 's на линии:

$ grep -E '.*;.*;.*' 

И это покажет один с; это единственное, что на линии, за исключением, возможно, пробелами:

$ grep -E '^ *; *$' 

grep -E говорит ему использовать расширенный синтаксис регулярных выражений (egrep означает то же самое, кстати), а затем остальное просто регулярное выражение. .* соответствует любому количеству ничего, ноль или более любого символа. Итак, у первого есть два: с любым количеством чего-либо между ними, до или после них.

Второй по счету ^ - начало линии, $ - конец строки, затем любое количество пробелов до и после;.

+0

Я просто заметил тег 'sed'. Тот же синтаксис для регулярного выражения должен работать и в sed. –

+0

Как бы я мог найти в строке, в которой есть символы; но шаблон - ashkdshfks; fjgkdf так пространство; пространство? – heinheo

+0

Другой вопрос был, когда вы смотрите на двоих; на одной строке, то дело в том, что они не должны быть рядом друг с другом .. они могут быть в любой позиции на линии ... – heinheo

Смежные вопросы