Для осуществления отбора строк для редактирования, в адресах команд SED допускается использование регулярных выражений, заключенных в "/ /" и определяемых следующим образом:
Примеры:
/olga/ - указывает на строки содержащие "olga" , "abcolgadef" ,...;
/ol.*ga/ - указывает на строки, содержащие "olga" , "olabcga" ,....;
/^[Oo]lga/ - на строки, начинающиеся с "Olga" или "olga" ;
/./ - попадают все строки, имеющие хотя бы 1 символ (не newline );
/\./ - попадают строки, содержащие "." ;
/^[^ ]/ - строки, не начинающиеся с " " ;
/\(ol\).*\1/ - строки, содержащие два вхождения "ol" не подряд.
- Регулярное выражение указывается в разделителях: "/ /" ;
- любой символ (кроме специальных: \[.^*$ ) является регулярным выражением себя;
- ^ в начале регулярного выражения указывает на пустой символ в начале регулярного выражения. (Т.е. на начало строки)
- $ в конце регулярного выражения указывает на пустой символ в конце регулярного выражения. (Т.е. на конец строки);
- \n - вставленный newline (новая строка);
- . - любой символ (кроме обыкновенного newline );
- * - стоящая за регулярным выражением означает любую последовательность вхождений этого выражения, начиная с 0;
- [ ] - указывает на один из символов, приведенных внутри;
- [^ ] - указывает на один из символов, кроме приведенных внутри;
- \ - перед любым символом, кроме цифр и "(" , ")" , означает этот символ. ( Экранирование специальных символов).
- \(x\) -, где x - регулярное выражение, указывает на x .
- \d -, где d - цифра, указывает копию d -того выражения, которое заключалось в скобки "\(" и "\)" ;
- конкатенация регулярных выражений является регулярным выражением.
Примеры:
/olga/ - указывает на строки содержащие "olga" , "abcolgadef" ,...;
/ol.*ga/ - указывает на строки, содержащие "olga" , "olabcga" ,....;
/^[Oo]lga/ - на строки, начинающиеся с "Olga" или "olga" ;
/./ - попадают все строки, имеющие хотя бы 1 символ (не newline );
/\./ - попадают строки, содержащие "." ;
/^[^ ]/ - строки, не начинающиеся с " " ;
/\(ol\).*\1/ - строки, содержащие два вхождения "ol" не подряд.