Вы можете использовать это
grep -P "\(.{5,10}\)" filename.txt
Если вы хотите установить результаты в переменную, вы можете использовать это.
var=$( grep -P "\(.{5,10}\)" filename.txt )
or
var=` grep -P "\(.{5,10}\)" filename.txt `
Обратите внимание, что во втором примере используются обратные кавычки, а не одинарные кавычки. И если вы хотите распечатать вывод в файл, вы можете использовать либо
grep -P "\(.{5,10}\)" filename.txt > newfile.txt
or
grep -P "\(.{5,10}\)" filename.txt >> newfile.txt
Где второй пример добавит существующий файл или создаст новый файл, если это необходимо.
вы также можете использовать egrep вместо grep (если вы это сделаете, вам не нужны параметры -P
Это делает использование поиска по регулярному выражению, поскольку файл и программы grep и egrep будут печатать каждую строку, соответствующую предоставленному регулярному выражению. В этом случае регулярное выражение имеет вид "\(.{5,10}\)"
. Обратная косая черта означает, что следующий символ является буквальным символом, поэтому, когда за ним следует ( или a ), вы говорите литерал '(', а не то, что он обычно представляет в регулярном выражении. ' .' означает любой символ, кроме символа новой строки, {} указывает на ограниченное количество повторений последнего символа (в данном случае это будет любой символ), а числа внутри - минимальное и максимальное, разделенные запятой.
Таким образом, мы в основном говорили, что grep распечатывает любую строку, содержащую строку, содержащую шаблон открывающей скобки, а затем от 5 до 10 символов, которые не являются новой строкой, за которой следует закрывающая скобка.
Дополнительную информацию о строке регулярного выражения можно получить здесь http://www.regular-expressions.info/.
person
Linx
schedule
22.02.2014