САС - Замена
- Основная замена
- просто
- Глобальный
- целенаправленные
- Условное замещение
- упрощенный
- продвинутый
- блок
- Расширенное использование
![](http://img.brin-designs.com/img/games/813/sed-substitution.png)
Команда замены: [s. ] изменяет все вхождения регулярного выражения на новое значение.
Основная замена
просто
Только 1-й матч (каждая строка)
sed 's / la / LA /' file.txt
Глобальный
Все встреченные случаи (каждая строка)
sed 's / la / LA / g' file.txt
целенаправленные
Только 2-е вхождение (каждая строка)
sed 's / la / LA / 2' file.txt
Условное замещение
упрощенный
/ объяснение / - только если строка содержит «объяснение»
sed '/ awk / s / sed / SED /' file.txt
Номер строки - Только строка без "N"
sed '18 s / sed / SED / 'file.txt
/ Regex / - Только если есть соответствие с регулярным выражением
sed '/ ^ [] [Ss] ed / s / ed / ED / g' file.txt
продвинутый
0, / regex / - найден только 1-й случай
sed '0, / sed / s // SED /' file.txt
блок
/ объяснение1 /, / объяснение2 / - Только между "объяснение1 - объяснение2"
sed '/ start /, / End / s / ed / ED /' file.txt # Найден только 1-й случай
sed '/ Start /, / End / s / ed / ED / g' file.txt # all case
8, 13 - только между строками 8-13
sed '8, 13 s / ed / ED / g' file.txt
Мы также можем объединить разум и линию
sed '8, / End / s / ed / ED / g' file.txt sed '/ Start /, 13 s / ed / ED / g' file.txt
Или с "регулярным выражением"
sed '/ Start /, $ s / ed / ED / g' file.txt # до конца ($) sed '/ ^ [] [Ss] ed /, 13 s / ed / ED /' file.txt
Расширенное использование
Заменить любой текст между двумя основаниями, исключая основания
sed '/ Start /, / End / {/ Start / b; / End / b; s /.*/ SED - Стрим Ã ‰ Ditor /; } 'file.txt