[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/sed-basics":3,"mdc--ct5qdo-key":484,"mdc--8y0mhl-key":511,"mdc-2a11wp-key":519,"mdc--u4ytoc-key":544,"mdc--2279qg-key":576,"mdc-nba5pr-key":607,"mdc--aixdhj-key":658,"mdc-jtcv3r-key":688,"related-/guides/linux/sed-advanced,/guides/linux/awk-basics,/errors/linux/sed-error":719},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":424,"code":424,"createdAt":425,"description":426,"difficulty":427,"draft":428,"estimatedTime":429,"extension":430,"faq":431,"howToSteps":444,"howToTotalTime":457,"image":424,"keywords":458,"locale":466,"meta":467,"navigation":120,"path":468,"platform":469,"related":470,"section":474,"seo":475,"severity":424,"stem":476,"summary":477,"tags":478,"twitterCreator":424,"twitterSite":424,"type":482,"updatedAt":425,"__hash__":483},"content_ru/guides/linux/sed-basics.md","Основы sed: пошаговое руководство по редактированию текста за 5 минут",[7,8,9,10],"Ubuntu 20.04","Ubuntu 22.04","Debian 11","Fedora 36","FixPedia Team",{"type":13,"value":14,"toc":412},"minimark",[15,20,28,32,37,54,57,61,67,88,91,160,162,166,169,187,213,215,219,226,244,265,267,271,277,294,309,312,314,318,346,348,352,402,408],[16,17,19],"h2",{"id":18},"введение","Введение",[21,22,23,27],"p",{},[24,25,26],"code",{},"sEd"," (Stream Editor) — это универсальный инструмент для редактирования текста в терминале Linux. С его помощью можно быстро изменять файлы, заменять подстроки, фильтровать строки и извлекать нужные поля — всё это делается одной командой. В этом гайде вы освоите базовые команды и сможете выполнять типичные операции за несколько минут.",[16,29,31],{"id":30},"требования","Требования",[33,34,36],"h3",{"id":35},"предварительные-условия","Предварительные условия",[38,39,40,44,47],"ul",{},[41,42,43],"li",{},"Любая современная дистрибутива Linux (Ubuntu, Debian, Fedora, Arch и т.д.)",[41,45,46],{},"Права на чтение/запись в целевой файл",[41,48,49,50,53],{},"Установленный ",[24,51,52],{},"sed"," (обычно уже присутствует в системе)",[55,56],"hr",{},[16,58,60],{"id":59},"шаг-1-проверка-установки-sed","Шаг 1: Проверка установки sed",[21,62,63,64,66],{},"Убедитесь, что ",[24,65,52],{}," работает в вашей системе.",[68,69,74],"pre",{"className":70,"code":71,"language":72,"meta":73,"style":73},"language-bash shiki shiki-themes github-light github-dark","sed --version\n","bash","",[24,75,76],{"__ignoreMap":73},[77,78,81,84],"span",{"class":79,"line":80},"line",1,[77,82,52],{"class":83},"sScJk",[77,85,87],{"class":86},"sj4cs"," --version\n",[21,89,90],{},"Если команда не найдена, установите утилиту с помощью подходящего пакетного менеджера:",[68,92,94],{"className":70,"code":93,"language":72,"meta":73,"style":73},"# Для Debian/Ubuntu\napt install sed\n\n# Для RHEL/CentOS\nyum install sed\n\n# Для Alpine\napk add sed\n",[24,95,96,102,115,122,128,138,143,149],{"__ignoreMap":73},[77,97,98],{"class":79,"line":80},[77,99,101],{"class":100},"sJ8bj","# Для Debian/Ubuntu\n",[77,103,105,108,112],{"class":79,"line":104},2,[77,106,107],{"class":83},"apt",[77,109,111],{"class":110},"sZZnC"," install",[77,113,114],{"class":110}," sed\n",[77,116,118],{"class":79,"line":117},3,[77,119,121],{"emptyLinePlaceholder":120},true,"\n",[77,123,125],{"class":79,"line":124},4,[77,126,127],{"class":100},"# Для RHEL/CentOS\n",[77,129,131,134,136],{"class":79,"line":130},5,[77,132,133],{"class":83},"yum",[77,135,111],{"class":110},[77,137,114],{"class":110},[77,139,141],{"class":79,"line":140},6,[77,142,121],{"emptyLinePlaceholder":120},[77,144,146],{"class":79,"line":145},7,[77,147,148],{"class":100},"# Для Alpine\n",[77,150,152,155,158],{"class":79,"line":151},8,[77,153,154],{"class":83},"apk",[77,156,157],{"class":110}," add",[77,159,114],{"class":110},[55,161],{},[16,163,165],{"id":164},"шаг-2-замена-текста-в-файле","Шаг 2: Замена текста в файле",[21,167,168],{},"Самая распространённая операция — замена одного слова на другое во всём файле.",[68,170,172],{"className":70,"code":171,"language":72,"meta":73,"style":73},"sed -i 's/old/new/g' file.txt\n",[24,173,174],{"__ignoreMap":73},[77,175,176,178,181,184],{"class":79,"line":80},[77,177,52],{"class":83},[77,179,180],{"class":86}," -i",[77,182,183],{"class":110}," 's/old/new/g'",[77,185,186],{"class":110}," file.txt\n",[38,188,189,195],{},[41,190,191,194],{},[24,192,193],{},"-i"," — изменяет файл напрямую (без вывода).",[41,196,197,200,201,204,205,208,209,212],{},[24,198,199],{},"s/old/new/g"," — шаблон замены, где ",[24,202,203],{},"old"," — исходная подстрока, ",[24,206,207],{},"new"," — новая, ",[24,210,211],{},"g"," означает глобальную замену во всей строке.",[55,214],{},[16,216,218],{"id":217},"шаг-3-вывод-совпадающих-строк","Шаг 3: Вывод совпадающих строк",[21,220,221,222,225],{},"Если вам нужна только часть файла, используйте ",[24,223,224],{},"sed -n"," для вывода совпадающих строк.",[68,227,229],{"className":70,"code":228,"language":72,"meta":73,"style":73},"sed -n '/error/p' system.log\n",[24,230,231],{"__ignoreMap":73},[77,232,233,235,238,241],{"class":79,"line":80},[77,234,52],{"class":83},[77,236,237],{"class":86}," -n",[77,239,240],{"class":110}," '/error/p'",[77,242,243],{"class":110}," system.log\n",[38,245,246,252],{},[41,247,248,251],{},[24,249,250],{},"-n"," отключает автоматический вывод всех строк.",[41,253,254,257,258,260,261,264],{},[24,255,256],{},"/error/p"," — команда ",[24,259,21],{},", которая выводит строку, если она содержит шаблон ",[24,262,263],{},"error",".",[55,266],{},[16,268,270],{"id":269},"шаг-4-извлечение-и-изменение-данных","Шаг 4: Извлечение и изменение данных",[21,272,273,274,276],{},"Команды ",[24,275,52],{}," позволяют также преобразовывать данные перед выводом. Пример: замена разделителя и фильтрация.",[68,278,280],{"className":70,"code":279,"language":72,"meta":73,"style":73},"sed -n 's/:/ /; /error/p' logfile\n",[24,281,282],{"__ignoreMap":73},[77,283,284,286,288,291],{"class":79,"line":80},[77,285,52],{"class":83},[77,287,237],{"class":86},[77,289,290],{"class":110}," 's/:/ /; /error/p'",[77,292,293],{"class":110}," logfile\n",[38,295,296,302],{},[41,297,298,301],{},[24,299,300],{},"s/:/ /"," заменяет двоеточие на пробел.",[41,303,304,306,307,264],{},[24,305,256],{}," выводит только строки, содержащие ",[24,308,263],{},[310,311],"in-article-ad",{},[55,313],{},[16,315,317],{"id":316},"проверка-результата","Проверка результата",[38,319,320,334,340],{},[41,321,322,326,327,329,330,333],{},[323,324,325],"strong",{},"Замена:"," Проверьте файл после команды ",[24,328,193],{},", например ",[24,331,332],{},"grep -n old file.txt"," не должно найти совпадающих строк.",[41,335,336,339],{},[323,337,338],{},"Вывод строк:"," Убедитесь, что только нужные строки отображаются, лишние удалены.",[41,341,342,345],{},[323,343,344],{},"Преобразование:"," Проверьте, что разделители изменились, а отфильтрованные строки соответствуют шаблону.",[55,347],{},[16,349,351],{"id":350},"возможные-проблемы","Возможные проблемы",[38,353,354,362,374,392],{},[41,355,356,361],{},[323,357,358],{},[24,359,360],{},"sed: command not found"," – утилита отсутствует; установите её через пакетный менеджер дистрибутива.",[41,363,364,369,370,373],{},[323,365,366],{},[24,367,368],{},"Permission denied"," – у вас нет прав на запись; запустите команду от имени root (",[24,371,372],{},"sudo",") или измените права доступа к файлу.",[41,375,376,379,380,383,384,387,388,391],{},[323,377,378],{},"Неправильное регулярное выражение"," – проверьте экранирование специальных символов (",[24,381,382],{},"\\.",", ",[24,385,386],{},"\\*","). Используйте ",[24,389,390],{},"-E",", чтобы включить расширенные регулярные выражения, если нужно.",[41,393,394,397,398,401],{},[323,395,396],{},"Не удалось сохранить изменения"," – файл может быть защищён системой (например, ",[24,399,400],{},"/etc/passwd","). Убедитесь, что вы изменяете разрешённый файл или используете резервное копирование.",[21,403,404,405,407],{},"Следуйте этим шагам, и вы сможете эффективно использовать ",[24,406,52],{}," для повседневных задач редактирования текста в Linux. Удачного кодирования!",[409,410,411],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":73,"searchDepth":104,"depth":104,"links":413},[414,415,418,419,420,421,422,423],{"id":18,"depth":104,"text":19},{"id":30,"depth":104,"text":31,"children":416},[417],{"id":35,"depth":117,"text":36},{"id":59,"depth":104,"text":60},{"id":164,"depth":104,"text":165},{"id":217,"depth":104,"text":218},{"id":269,"depth":104,"text":270},{"id":316,"depth":104,"text":317},{"id":350,"depth":104,"text":351},null,"2026-06-28 08:59:25","Узнайте, как использовать sed для быстрого редактирования текста в Linux. Пошаговая инструкция с примерами за 5 минут поможет вам освоить базовые команды.","easy",false,"5-10 мин","md",[432,435,438,441],{"question":433,"answer":434},"Как установить sed в Linux?","sed входит в состав coreutils, поэтому уже предустановлен. Для Debian/Ubuntu используйте `apt install sed`, для Alpine — `apk add sed`.",{"question":436,"answer":437},"Что такое регулярные выражения в sed?","sed использует базовые (BRE) или расширенные (ERE) регулярные выражения для поиска и замены текста по шаблону.",{"question":439,"answer":440},"Как избежать потери данных при редактировании?","Сделайте резервную копию файла (`cp filename filename.bak`) или используйте `--dry-run`, чтобы предварительно просмотреть изменения.",{"question":442,"answer":443},"Как вывести только совпадающие строки?","Используйте `sed -n '/pattern/p' filename` — `-n` подавляет автоматический вывод, а `/pattern/p` выводит только совпадающие строки.",[445,448,451,454],{"name":446,"text":447},"Проверка установки и версии sed","Выполните команду `sed --version`, чтобы убедиться, что утилита установлена. Если команда не найдена, установите sed с помощью подходящего пакета менеджера (`apt install sed`, `yum install sed` и т.д.).",{"name":449,"text":450},"Замена текста в файле","Чтобы заменить все вхождения слова **old** на **new** в файле `file.txt`, используйте команду `sed -i 's/old/new/g' file.txt`. Параметр `-i` изменяет файл напрямую, а `s/old/new/g` выполняет глобальную замену.",{"name":452,"text":453},"Вывод совпадающих строк","Чтобы показать только строки, содержащие определённый шаблон, выполните `sed -n '/pattern/p' file.txt`. Параметр `-n` предотвращает автоматический вывод всех строк, а `/pattern/p` выводит совпадающие строки.",{"name":455,"text":456},"Извлечение и изменение данных","Для разделения файла по двоеточиям и вывода второго поля используйте `sed -n 's/:/ /; /error/p' logfile`. Это заменяет `:` на пробел и выводит строки, содержащие `error`.","PT10M",[459,460,461,462,463,464,465],"sed базовые команды","как использовать sed","замена текста sed","вывод строк sed","редактирование файлов sed","sed примеры команд","sed для начинающих","ru_RU",{},"/guides/linux/sed-basics","linux",[471,472,473],"/guides/linux/sed-advanced","/guides/linux/awk-basics","/errors/linux/sed-error","Гайды Linux",{"title":5,"description":426},"guides/linux/sed-basics","В этом гайде вы узнаете основные команды sed для редактирования текста в терминале Linux. После выполнения инструкции вы сможете быстро изменять, заменять и выводить строки текста.",[52,479,480,481,72],"Linux","командная строка","редактирование текста","guide","h6OlckKsKozIidRBf_oQJeJwXw4EH6KwRuYN_MlVuq8",{"data":485,"body":486},{},{"type":487,"children":488},"root",[489],{"type":490,"tag":21,"props":491,"children":492},"element",{},[493,496,502,504,510],{"type":494,"value":495},"text","sed входит в состав coreutils, поэтому уже предустановлен. Для Debian/Ubuntu используйте ",{"type":490,"tag":24,"props":497,"children":499},{"className":498},[],[500],{"type":494,"value":501},"apt install sed",{"type":494,"value":503},", для Alpine — ",{"type":490,"tag":24,"props":505,"children":507},{"className":506},[],[508],{"type":494,"value":509},"apk add sed",{"type":494,"value":264},{"data":512,"body":513},{},{"type":487,"children":514},[515],{"type":490,"tag":21,"props":516,"children":517},{},[518],{"type":494,"value":437},{"data":520,"body":521},{},{"type":487,"children":522},[523],{"type":490,"tag":21,"props":524,"children":525},{},[526,528,534,536,542],{"type":494,"value":527},"Сделайте резервную копию файла (",{"type":490,"tag":24,"props":529,"children":531},{"className":530},[],[532],{"type":494,"value":533},"cp filename filename.bak",{"type":494,"value":535},") или используйте ",{"type":490,"tag":24,"props":537,"children":539},{"className":538},[],[540],{"type":494,"value":541},"--dry-run",{"type":494,"value":543},", чтобы предварительно просмотреть изменения.",{"data":545,"body":546},{},{"type":487,"children":547},[548],{"type":490,"tag":21,"props":549,"children":550},{},[551,553,559,561,566,568,574],{"type":494,"value":552},"Используйте ",{"type":490,"tag":24,"props":554,"children":556},{"className":555},[],[557],{"type":494,"value":558},"sed -n '/pattern/p' filename",{"type":494,"value":560}," — ",{"type":490,"tag":24,"props":562,"children":564},{"className":563},[],[565],{"type":494,"value":250},{"type":494,"value":567}," подавляет автоматический вывод, а ",{"type":490,"tag":24,"props":569,"children":571},{"className":570},[],[572],{"type":494,"value":573},"/pattern/p",{"type":494,"value":575}," выводит только совпадающие строки.",{"data":577,"body":578},{},{"type":487,"children":579},[580],{"type":490,"tag":21,"props":581,"children":582},{},[583,585,591,593,598,599,605],{"type":494,"value":584},"Выполните команду ",{"type":490,"tag":24,"props":586,"children":588},{"className":587},[],[589],{"type":494,"value":590},"sed --version",{"type":494,"value":592},", чтобы убедиться, что утилита установлена. Если команда не найдена, установите sed с помощью подходящего пакета менеджера (",{"type":490,"tag":24,"props":594,"children":596},{"className":595},[],[597],{"type":494,"value":501},{"type":494,"value":383},{"type":490,"tag":24,"props":600,"children":602},{"className":601},[],[603],{"type":494,"value":604},"yum install sed",{"type":494,"value":606}," и т.д.).",{"data":608,"body":609},{},{"type":487,"children":610},[611],{"type":490,"tag":21,"props":612,"children":613},{},[614,616,620,622,626,628,634,636,642,644,649,651,656],{"type":494,"value":615},"Чтобы заменить все вхождения слова ",{"type":490,"tag":323,"props":617,"children":618},{},[619],{"type":494,"value":203},{"type":494,"value":621}," на ",{"type":490,"tag":323,"props":623,"children":624},{},[625],{"type":494,"value":207},{"type":494,"value":627}," в файле ",{"type":490,"tag":24,"props":629,"children":631},{"className":630},[],[632],{"type":494,"value":633},"file.txt",{"type":494,"value":635},", используйте команду ",{"type":490,"tag":24,"props":637,"children":639},{"className":638},[],[640],{"type":494,"value":641},"sed -i 's/old/new/g' file.txt",{"type":494,"value":643},". Параметр ",{"type":490,"tag":24,"props":645,"children":647},{"className":646},[],[648],{"type":494,"value":193},{"type":494,"value":650}," изменяет файл напрямую, а ",{"type":490,"tag":24,"props":652,"children":654},{"className":653},[],[655],{"type":494,"value":199},{"type":494,"value":657}," выполняет глобальную замену.",{"data":659,"body":660},{},{"type":487,"children":661},[662],{"type":490,"tag":21,"props":663,"children":664},{},[665,667,673,674,679,681,686],{"type":494,"value":666},"Чтобы показать только строки, содержащие определённый шаблон, выполните ",{"type":490,"tag":24,"props":668,"children":670},{"className":669},[],[671],{"type":494,"value":672},"sed -n '/pattern/p' file.txt",{"type":494,"value":643},{"type":490,"tag":24,"props":675,"children":677},{"className":676},[],[678],{"type":494,"value":250},{"type":494,"value":680}," предотвращает автоматический вывод всех строк, а ",{"type":490,"tag":24,"props":682,"children":684},{"className":683},[],[685],{"type":494,"value":573},{"type":494,"value":687}," выводит совпадающие строки.",{"data":689,"body":690},{},{"type":487,"children":691},[692],{"type":490,"tag":21,"props":693,"children":694},{},[695,697,703,705,711,713,718],{"type":494,"value":696},"Для разделения файла по двоеточиям и вывода второго поля используйте ",{"type":490,"tag":24,"props":698,"children":700},{"className":699},[],[701],{"type":494,"value":702},"sed -n 's/:/ /; /error/p' logfile",{"type":494,"value":704},". Это заменяет ",{"type":490,"tag":24,"props":706,"children":708},{"className":707},[],[709],{"type":494,"value":710},":",{"type":494,"value":712}," на пробел и выводит строки, содержащие ",{"type":490,"tag":24,"props":714,"children":716},{"className":715},[],[717],{"type":494,"value":263},{"type":494,"value":264},[720],{"id":721,"title":722,"appliesTo":723,"author":11,"body":725,"canonical":424,"code":424,"createdAt":1290,"description":1291,"difficulty":1292,"draft":428,"estimatedTime":1293,"extension":430,"faq":1294,"howToSteps":1307,"howToTotalTime":1326,"image":424,"keywords":1327,"locale":466,"meta":1335,"navigation":120,"path":471,"platform":469,"related":1336,"section":474,"seo":1340,"severity":424,"stem":1341,"summary":1342,"tags":1343,"twitterCreator":424,"twitterSite":424,"type":482,"updatedAt":1290,"__hash__":1347},"content_ru/guides/linux/sed-advanced.md","Как использовать продвинутый `sed` для сложных преобразований текста и скриптов",[7,8,9,724],"Fedora 36+",{"type":13,"value":726,"toc":1276},[727,731,739,743,781,785,789,795,852,856,870,910,921,937,941,950,968,974,978,981,1027,1030,1055,1059,1065,1099,1106,1108,1112,1115,1132,1135,1150,1153,1155,1158,1192,1197,1199,1267,1273],[16,728,730],{"id":729},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,732,733,735,736,738],{},[24,734,52],{}," — мощный инструмент для обработки текста в Linux. В базовом гайде описаны простейшие операции, но продвинутые сценарии требуют большего контроля: обработка нескольких файлов, сложные регулярные выражения, автоматизация и отладка. После выполнения этого гайда вы сможете писать эффективные ",[24,737,52],{},"-скрипты, которые ускоряют рутинную работу с текстовыми данными и интегрируются в пайплайны автоматизации.",[16,740,742],{"id":741},"требования-подготовка","Требования / Подготовка",[38,744,745,751,760,771],{},[41,746,747,750],{},[323,748,749],{},"Операционная система:"," Linux (Ubuntu 20.04+, Debian 11+, Fedora 36+ и другие современные дистрибутивы).",[41,752,753,756,757,759],{},[323,754,755],{},"Права пользователя:"," Необходимо право на запись в целевые файлы (обычно права владельца или ",[24,758,372],{},").",[41,761,762,765,766,768,769,264],{},[323,763,764],{},"Установленные пакеты:"," GNU ",[24,767,52],{}," (входит в базовый набор большинства дистрибутивов). На редких системах может потребоваться явная установка ",[24,770,52],{},[41,772,773,776,777,780],{},[323,774,775],{},"Инструменты для отладки:"," Флаг ",[24,778,779],{},"--debug"," (GNU sed) и возможность тестирования команд на небольших файлах.",[16,782,784],{"id":783},"пошаговая-инструкция","Пошаговая инструкция",[33,786,788],{"id":787},"шаг-1-установка-gnu-sed-если-необходимо","Шаг 1: Установка GNU sed (если необходимо)",[21,790,791,792,794],{},"Большинство дистрибутивов Linux поставляются с GNU ",[24,793,52],{},". Если вы работаете на минимальной системе, установите его через менеджер пакетов:",[68,796,798],{"className":70,"code":797,"language":72,"meta":73,"style":73},"# Для Debian/Ubuntu\nsudo apt update && sudo apt install sed -y\n\n# Для Fedora/Red Hat\nsudo dnf install sed -y\n",[24,799,800,804,830,834,839],{"__ignoreMap":73},[77,801,802],{"class":79,"line":80},[77,803,101],{"class":100},[77,805,806,808,811,814,818,820,822,824,827],{"class":79,"line":104},[77,807,372],{"class":83},[77,809,810],{"class":110}," apt",[77,812,813],{"class":110}," update",[77,815,817],{"class":816},"sVt8B"," && ",[77,819,372],{"class":83},[77,821,810],{"class":110},[77,823,111],{"class":110},[77,825,826],{"class":110}," sed",[77,828,829],{"class":86}," -y\n",[77,831,832],{"class":79,"line":117},[77,833,121],{"emptyLinePlaceholder":120},[77,835,836],{"class":79,"line":124},[77,837,838],{"class":100},"# Для Fedora/Red Hat\n",[77,840,841,843,846,848,850],{"class":79,"line":130},[77,842,372],{"class":83},[77,844,845],{"class":110}," dnf",[77,847,111],{"class":110},[77,849,826],{"class":110},[77,851,829],{"class":86},[33,853,855],{"id":854},"шаг-2-редактирование-нескольких-файлов-одновременно","Шаг 2: Редактирование нескольких файлов одновременно",[21,857,858,859,862,863,866,867,710],{},"Для массовой замены в нескольких файлах используйте ",[24,860,861],{},"find"," вместе с ",[24,864,865],{},"-exec"," и ",[24,868,869],{},"sed -i",[68,871,873],{"className":70,"code":872,"language":72,"meta":73,"style":73},"find . -type f -name \"*.txt\" -exec sed -i 's/OldValue/NewValue/g' {} +\n",[24,874,875],{"__ignoreMap":73},[77,876,877,879,882,885,888,891,894,897,899,901,904,907],{"class":79,"line":80},[77,878,861],{"class":83},[77,880,881],{"class":110}," .",[77,883,884],{"class":86}," -type",[77,886,887],{"class":110}," f",[77,889,890],{"class":86}," -name",[77,892,893],{"class":110}," \"*.txt\"",[77,895,896],{"class":86}," -exec",[77,898,826],{"class":110},[77,900,180],{"class":86},[77,902,903],{"class":110}," 's/OldValue/NewValue/g'",[77,905,906],{"class":110}," {}",[77,908,909],{"class":110}," +\n",[21,911,912,913,916,917,920],{},"Команда рекурсивно ищет файлы с расширением ",[24,914,915],{},".txt"," в текущем каталоге и применяет замену ",[24,918,919],{},"OldValue → NewValue"," в каждом файле.",[922,923,924],"blockquote",{},[21,925,926,927,929,930,932,933,936],{},"⚠️ Важно: Флаг ",[24,928,193],{}," работает только с GNU ",[24,931,52],{},". На системах macOS используйте ",[24,934,935],{},"sed -i '' ..."," для того же эффекта.",[33,938,940],{"id":939},"шаг-3-использование-расширенных-регулярных-выражений","Шаг 3: Использование расширенных регулярных выражений",[21,942,943,944,946,947,710],{},"Для более гибкого сопоставления используйте расширенные регулярные выражения (",[24,945,390],{},") или эквивалентный флаг ",[24,948,949],{},"-r",[68,951,953],{"className":70,"code":952,"language":72,"meta":73,"style":73},"sed -E 's/([0-9]{3})[.-]?([0-9]{3})[.-]?([0-9]{4})/\\1-\\2-\\3/' phone.txt\n",[24,954,955],{"__ignoreMap":73},[77,956,957,959,962,965],{"class":79,"line":80},[77,958,52],{"class":83},[77,960,961],{"class":86}," -E",[77,963,964],{"class":110}," 's/([0-9]{3})[.-]?([0-9]{3})[.-]?([0-9]{4})/\\1-\\2-\\3/'",[77,966,967],{"class":110}," phone.txt\n",[21,969,970,971,264],{},"Результат: все номера телефонов преобразуются в формат ",[24,972,973],{},"XXX-XXX-XXXX",[33,975,977],{"id":976},"шаг-4-создание-и-использование-sed-скрипта","Шаг 4: Создание и использование sed-скрипта",[21,979,980],{},"Сложные преобразования удобнее записать в отдельный скрипт:",[68,982,985],{"className":983,"code":984,"language":52,"meta":73,"style":73},"language-sed shiki shiki-themes github-light github-dark","# transform.sed\n# Удалить пустые строки\n/^$/d\n# Привести весь текст к нижнему регистру\ns/[A-Z]/\\l&/g\n# Добавить комментарий в конец файла, если он отсутствует\n$ a\\\n# EOF\n",[24,986,987,992,997,1002,1007,1012,1017,1022],{"__ignoreMap":73},[77,988,989],{"class":79,"line":80},[77,990,991],{},"# transform.sed\n",[77,993,994],{"class":79,"line":104},[77,995,996],{},"# Удалить пустые строки\n",[77,998,999],{"class":79,"line":117},[77,1000,1001],{},"/^$/d\n",[77,1003,1004],{"class":79,"line":124},[77,1005,1006],{},"# Привести весь текст к нижнему регистру\n",[77,1008,1009],{"class":79,"line":130},[77,1010,1011],{},"s/[A-Z]/\\l&/g\n",[77,1013,1014],{"class":79,"line":140},[77,1015,1016],{},"# Добавить комментарий в конец файла, если он отсутствует\n",[77,1018,1019],{"class":79,"line":145},[77,1020,1021],{},"$ a\\\n",[77,1023,1024],{"class":79,"line":151},[77,1025,1026],{},"# EOF\n",[21,1028,1029],{},"Выполните скрипт:",[68,1031,1033],{"className":70,"code":1032,"language":72,"meta":73,"style":73},"sed -f transform.sed input.txt > output.txt\n",[24,1034,1035],{"__ignoreMap":73},[77,1036,1037,1039,1042,1045,1048,1052],{"class":79,"line":80},[77,1038,52],{"class":83},[77,1040,1041],{"class":86}," -f",[77,1043,1044],{"class":110}," transform.sed",[77,1046,1047],{"class":110}," input.txt",[77,1049,1051],{"class":1050},"szBVR"," >",[77,1053,1054],{"class":110}," output.txt\n",[33,1056,1058],{"id":1057},"шаг-5-объединение-sed-с-xargs-для-пакетной-обработки","Шаг 5: Объединение sed с xargs для пакетной обработки",[21,1060,1061,1062,710],{},"Когда нужно обработать список файлов, хранящийся в отдельном файле, используйте ",[24,1063,1064],{},"xargs",[68,1066,1068],{"className":70,"code":1067,"language":72,"meta":73,"style":73},"cat filelist.txt | xargs -I {} sed -i 's/deprecated/removed/g' {}\n",[24,1069,1070],{"__ignoreMap":73},[77,1071,1072,1075,1078,1081,1084,1087,1089,1091,1093,1096],{"class":79,"line":80},[77,1073,1074],{"class":83},"cat",[77,1076,1077],{"class":110}," filelist.txt",[77,1079,1080],{"class":1050}," |",[77,1082,1083],{"class":83}," xargs",[77,1085,1086],{"class":86}," -I",[77,1088,906],{"class":110},[77,1090,826],{"class":110},[77,1092,180],{"class":86},[77,1094,1095],{"class":110}," 's/deprecated/removed/g'",[77,1097,1098],{"class":110}," {}\n",[21,1100,1101,1102,1105],{},"Команда считывает имена файлов из ",[24,1103,1104],{},"filelist.txt"," и последовательно применяет замену к каждому файлу.",[310,1107],{},[33,1109,1111],{"id":1110},"шаг-6-проверка-результата-изменений","Шаг 6: Проверка результата изменений",[21,1113,1114],{},"После применения изменений убедитесь, что они выполнены правильно:",[68,1116,1118],{"className":70,"code":1117,"language":72,"meta":73,"style":73},"sed -n '1,10p' updated_file.txt\n",[24,1119,1120],{"__ignoreMap":73},[77,1121,1122,1124,1126,1129],{"class":79,"line":80},[77,1123,52],{"class":83},[77,1125,237],{"class":86},[77,1127,1128],{"class":110}," '1,10p'",[77,1130,1131],{"class":110}," updated_file.txt\n",[21,1133,1134],{},"Если вы хотите получить разницу с исходным файлом:",[68,1136,1138],{"className":70,"code":1137,"language":72,"meta":73,"style":73},"diff original_file.txt updated_file.txt\n",[24,1139,1140],{"__ignoreMap":73},[77,1141,1142,1145,1148],{"class":79,"line":80},[77,1143,1144],{"class":83},"diff",[77,1146,1147],{"class":110}," original_file.txt",[77,1149,1131],{"class":110},[21,1151,1152],{},"Если вывод не содержит несоответствий, преобразования прошли успешно.",[16,1154,317],{"id":316},[21,1156,1157],{},"Для окончательной проверки выполните:",[1159,1160,1161,1174,1183],"ol",{},[41,1162,1163,1166,1167,1170,1171,264],{},[323,1164,1165],{},"Просмотрите изменённые строки"," с помощью ",[24,1168,1169],{},"sed -n '1,20p'"," или ",[24,1172,1173],{},"head -n 20",[41,1175,1176,1179,1180,264],{},[323,1177,1178],{},"Сравните с исходной версией"," через ",[24,1181,1182],{},"diff original updated",[41,1184,1185,1188,1189,264],{},[323,1186,1187],{},"Проверьте логи"," (если вы сохраняли их) для массовых операций с помощью ",[24,1190,1191],{},"find ... -exec",[21,1193,1194,1195,264],{},"Если все результаты соответствуют ожиданиям, вы успешно освоили продвинутый ",[24,1196,52],{},[16,1198,351],{"id":350},[38,1200,1201,1217,1236,1251],{},[41,1202,1203,1209,1210,1212,1213,1216],{},[323,1204,1205,1206,1208],{},"Флаг ",[24,1207,193],{}," отсутствует"," – на некоторых Unix-подобных системах (например, macOS) ",[24,1211,52],{}," требует дополнительного аргумента: ",[24,1214,1215],{},"sed -i '' 's/old/new/g' file",". Проверьте man-страницу вашей версии.",[41,1218,1219,1222,1223,383,1226,383,1229,383,1232,1235],{},[323,1220,1221],{},"Неправильное экранирование регулярных выражений"," – специальные символы (",[24,1224,1225],{},"&",[24,1227,1228],{},"\\",[24,1230,1231],{},"|",[24,1233,1234],{},"+",") должны быть экранированы или экранироваться в bash-строках. Используйте одинарные кавычки, чтобы избежать интерпретации оболочкой.",[41,1237,1238,1241,1242,1244,1245,1247,1248,759],{},[323,1239,1240],{},"Отсутствие прав на запись"," – если ",[24,1243,869],{}," не может изменить файл, выполните команду с ",[24,1246,372],{}," или измените права доступа к файлу (",[24,1249,1250],{},"chmod u+w filename",[41,1252,1253,1256,1257,1259,1260,1262,1263,1266],{},[323,1254,1255],{},"Производительность при массовой обработке"," – для очень большого количества файлов ",[24,1258,1191],{}," может быть медленным. Рассмотрите возможность использования ",[24,1261,1064],{}," с параллельными процессами (",[24,1264,1265],{},"xargs -P 4",") или написания небольшого скрипта на Python/Perl.",[21,1268,1269,1270,1272],{},"Теперь у вас есть полный набор инструментов для сложных задач обработки текста с помощью ",[24,1271,52],{},". Экспериментируйте, сочетайте приёмы и автоматизируйте свою работу с текстовыми данными!",[409,1274,1275],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":73,"searchDepth":104,"depth":104,"links":1277},[1278,1279,1280,1288,1289],{"id":729,"depth":104,"text":730},{"id":741,"depth":104,"text":742},{"id":783,"depth":104,"text":784,"children":1281},[1282,1283,1284,1285,1286,1287],{"id":787,"depth":117,"text":788},{"id":854,"depth":117,"text":855},{"id":939,"depth":117,"text":940},{"id":976,"depth":117,"text":977},{"id":1057,"depth":117,"text":1058},{"id":1110,"depth":117,"text":1111},{"id":316,"depth":104,"text":317},{"id":350,"depth":104,"text":351},"2026-06-29 14:56:16","Узнайте, как использовать продвинутый `sed` для сложных преобразований текста, манипуляций с множественными файлами и скриптов. Пошаговая инструкция за 10 минут.","hard","15-20 мин",[1295,1298,1301,1304],{"question":1296,"answer":1297},"Как отредактировать несколько файлов одновременно с помощью sed?","Используйте `sed -i` с шаблоном файлов, например `sed -i 's/old/new/g' *.txt`.",{"question":1299,"answer":1300},"Как использовать расширенные регулярные выражения в sed?","Добавьте флаг `-E` (или `-r`), например `sed -E 's/([a-z]+)@([a-z]+)\\.com/\\1@\\2.org/' file`.",{"question":1302,"answer":1303},"Как автоматизировать сложные преобразования с помощью sed-скрипта?","Запишите команды в файл скрипта `.sed` и выполняйте `sed -f script.sed file`, или используйте `sed -e` для chaining.",{"question":1305,"answer":1306},"Как отладить проблемную команду sed?","Добавьте флаг `-n` для пошагового просмотра, используйте `--debug` (GNU sed) или сначала протестируйте на небольшом фрагменте.",[1308,1311,1314,1317,1320,1323],{"name":1309,"text":1310},"Установка GNU sed (если необходимо)","Большинство дистрибутивов Linux поставляются с GNU sed. Для установки на Ubuntu/Debian выполните `sudo apt install sed`. На Fedora/Red Hat используйте `sudo dnf install sed`.",{"name":1312,"text":1313},"Редактирование нескольких файлов одновременно","Чтобы заменить строку во всех текстовых файлах каталога, выполните:\n\n```bash\nfind . -type f -name \"*.txt\" -exec sed -i 's/OldValue/NewValue/g' {} +\n```\nЭта команда рекурсивно ищет файлы с расширением `.txt` и применяет замену в каждом из них.",{"name":1315,"text":1316},"Использование расширенных регулярных выражений","Включите расширенные regex с помощью `-E` (или `-r`):\n\n```bash\nsed -E 's/([0-9]{3})[.-]?([0-9]{3})[.-]?([0-9]{4})/\\1-\\2-\\3/' phone.txt\n```\nКоманда преобразует номера телефонов в формат `XXX-XXX-XXXX`.",{"name":1318,"text":1319},"Создание и использование sed-скрипта","Создайте файл `transform.sed` со следующими правилами:\n\n```sed\n# Удалить пустые строки\ns/\\n//\n# Заменить все заглавные буквы на строчные\ntolower\n# Добавить окончание файла, если отсутствует\n$ a\\\n# EOF\n```\nВыполните скрипт командой:\n\n```bash\nsed -f transform.sed input.txt > output.txt\n```",{"name":1321,"text":1322},"Объединение sed с xargs для пакетной обработки","Для безопасной обработки большого количества файлов используйте `xargs`:\n\n```bash\ncat list.txt | xargs -I {} sed -i 's/deprecated/removed/g' {}\n```\nКоманда считывает имена файлов из `list.txt` и заменяет `deprecated` на `removed` во всех них.",{"name":1324,"text":1325},"Проверка результата изменений","Проверьте изменения, используя `diff` или просмотрев первые строки изменённых файлов:\n\n```bash\nsed -n '1,10p' modified_file.txt\n```\nЕсли результат соответствует ожиданиям, изменения успешно применены.","PT20M",[1328,1329,1330,1331,1332,1333,1334],"продвинутый sed","регулярные выражения sed","множественные файлы sed","скрипты sed","sed в Linux","команды sed","автоматизация sed",{},[1337,1338,1339],"/guides/linux/sed-basic","/guides/linux/awk-advanced","/guides/linux/scripting-automation",{"title":722,"description":1291},"guides/linux/sed-advanced","В этом гайде вы узнаете, как использовать продвинутый `sed` для сложных задач, таких как обработка нескольких строк, использование расширенных регулярных выражений и автоматизация изменений в нескольких файлах.",[479,52,1344,1345,1346],"регулярные выражения","автоматизация","скрипты","x-9XXch63oGjmTisgOmEZoIGfseIkCgkt-SfwC_to9s"]