Редактирането на текстови файлове и извеждането на терминала е ежедневна работа за тези, които администрират Linux машини. Помощните програми за команден ред като sed позволяват на потребителя да променя и променя съдържанието на текстов файл директно от прозореца на терминала.
В тази статия ще обсъдим подробно командата sed, заедно с някои съществени примери, които демонстрират силата на помощната програма sed в Linux.
Какво е командата sed?
Командата sed, което е съкращение от Редактор на потоци, е инструмент за команден ред, който позволява на потребителите на Linux да извършват текстови операции върху файлове и терминални изходи. Използвайки sed, потребителите могат да намират и заменят конкретни думи в текст, да показват определен раздел от изхода и да редактират текстови файлове, без да ги отварят.
Трите основни операции, поддържани от командата sed, са:
- Вмъкване
- Изтриване
- Замяна (Намерете и заменете)
Напредналите потребители също могат да внедрят регулярни изрази с командата sed, за да редактират по-ефективно текстовите потоци.
Основният синтаксис на командата е:
sed [опции] [модел] [път на файла]
...където настроики са различните функционалности на командата, модел е регулярният израз или скриптът, на който искате да съответства, и файлова пътека е пътят към текстовия файл, който съдържа текста.
10 Примери за командата Linux sed
Ако планирате да станете редовен потребител на Linux, знанието как да редактирате файлове, да търсите и замествате конкретни думи и да филтрирате изхода на терминала може да ви бъде полезно. Този раздел обхваща някои примери за командата sed, която определено ще ви превърне в потребител на Linux.
Ще използваме следния текстов файл за демонстрация в публикацията.
Това е демонстрационен текстов файл.
Това е невероятен файл, който ще ни помогне на всички.
Командата sed също е чудесна за редактиране на потоци.
Искате ли да научите как да използвате командата?
Това е друг ред във файла.
Това е третият общ ред във файла.
Този файл е наречен като текстов файл.
Това е ябълка.
Това е портокал.
1. Вижте гама от линии
Командите на Linux като head и tail извеждат първия или последните десет реда на текстов файл. Но какво, ако искате да получите съдържанието между два конкретни реда във файл? В такива ситуации командата sed може да ви бъде полезна.
За извеждане на съдържанието между редове 3 и 5 на файла textfile.txt:
sed -n '3,5p' textfile.txt
The -н flag не позволява на sed да показва пространството на шаблона в края на всеки цикъл. Можете също да използвате - спокойно и - тихо опции вместо -н. The стр аргумент означава печат и се използва за показване на съответстващите линии на потребителя.
Изпълнението на гореспоменатата команда върху примерния файл дава следния изход.
Командата sed също е чудесна за редактиране на потоци.
Искате ли да научите как да използвате командата?
Това е друг ред във файла.
За да изведете цялото съдържание на файла, с изключение на посочения диапазон, използвайте д флаг вместо стр в командата:
sed '3,5d' textfile.txt
The д flag изтрива съответстващите низове от изхода и показва останалото съдържание.
Това е демонстрационен текстов файл.
Това е невероятен файл, който ще ни помогне на всички.
Това е третият общ ред във файла.
Този файл е наречен като текстов файл.
Това е ябълка.
Това е портокал.
2. Показване на непоследователни линии
За да отпечатате непоследователни редове между множество диапазони във файла:
sed -n -e '1,2p' -e '5,6p' textfile.txt
Изход:
Това е демонстрационен текстов файл.
Това е невероятен файл, който ще ни помогне на всички.
Това е друг ред във файла.
Това е третият общ ред във файла.
The -е флаг помага изпълнение множество действия с помощта на една команда.
3. Поставете интервал между редовете
Ако по някаква причина искате да вмъкнете празни редове между всеки ред в текстов файл, използвайте G аргумент с командата sed по подразбиране.
sed G textfile.txt
За да вмъкнете множество празни редове в изхода, предайте няколко G аргументи, разделени с полу-дебело черво (;) характер.
sed 'G; G 'textfile.txt
4. Заменете дума в текстов файл
Ако искате да замените всяка поява на конкретна дума с друга дума, използвайте с и ж аргументи с командата. Основният синтаксис за заместване на думи с помощта на командата sed е:
sed s / originalword / replaceword / g име на файла
Използвайки гореспоменатия синтаксис, можете да замените думата невероятно с супер във файла textfile.txt:
sed s / amazing / super / g textfile.txt
The с аргумент означава заместване и ж команда се използва за заместване на съвпадащото съдържание с посоченото заместващо съдържание.
За да замените втората поява на думата със sed, предайте число на ж аргумент. В такъв случай:
sed s / amazing / super / g2 textfile.txt
Ако искате да игнорирате регистрите на символите, докато замествате думи, използвайте gi вместо ж, където i означава игнорирайте случай.
sed s / Amazing / super / gi textfile.txt
Свързани: Използване на Vi? Ето как да отворите файл, след което да запазите и да излезете
5. Заместващи думи в диапазона
Можете също да замествате думи в определен диапазон.
sed '2,5s / amazing / super / g' textfile.txt
6. Извършвайте няколко замествания наведнъж
Ако искате да извършите две или повече замествания наведнъж, просто отделете командите с полу-дебело черво (;) характер.
sed 's / amazing / super / g; s / command / utility / gi 'textfile.txt
Системата ще покаже следния изход.
Това е демонстрационен текстов файл.
Това е супер файл, който ще ни помогне на всички.
Помощната програма sed е чудесна и за редактиране на потоци.
Искате ли да научите как да използвате помощната програма?
Това е друг ред във файла.
Това е третият общ ред във файла.
Този файл е наречен като текстов файл.
Това е ябълка.
Това е портокал.
7. Заменете думи само ако е намерено съвпадение
Можете също да използвате командата sed, за да замените дума само ако дадено съвпадение е намерено в реда. Например да замени думата а с an ако думата оранжево присъства в реда:
sed -e '/ orange / s / a / an / g' textfile.txt
Издаването на гореспоменатата команда ще изведе:
Това е демонстрационен текстов файл.
Това е супер файл, който ще ни помогне на всички.
Помощната програма sed е чудесна и за редактиране на потоци.
Искате ли да научите как да използвате помощната програма?
Това е друг ред във файла.
Това е третият общ ред във файла.
Този файл е наречен като текстов файл.
Това е ябълка.
Това е портокал.
Имайте предвид, че думата а в реда Това е ябълка не беше заменен, тъй като системата не намери думата оранжево в него.
8. Заместващи думи, използващи регулярни изрази
За тези, които знаят как да използват регулярни изрази, извършването на операции върху низове с помощта на командата sed става много по-лесно. Можете да внедрите регулярни изрази, за да подобрите силата на командата.
За да замести всички появявания на думата Удивително или невероятно с супер:
sed -e 's / [Aa] mazing / super / g' textfile.txt
По същия начин можете също да използвате усъвършенствани регулярни изрази за изпълнение на конкретни операции, като използвате командата sed.
9. Pipe sed с други команди
Можете да свържете sed с други команди на Linux също. Например можете да прекарате lspci команда със sed за добавяне на празни интервали между редовете в изхода.
lspci | sed G
За да замените конкретни думи в изхода на ip маршрут шоу команда:
ip route show | sed s / src / source / g
Гореспоменатата команда замества думата източник на мястото на оригиналната дума src.
Свързани: Как да използвам командата Find за търсене на файлове в Linux
10. Редактирайте и архивирайте оригиналния файл
Когато работите със системни файлове, е важно архивирането на оригиналния файл, докато правите промени. Това ще ви помогне да върнете промените в случай, че нещо се счупи.
За да архивирате оригиналния файл с помощта на sed, използвайте -и флаг в командата.
sed -i'.backup 's / amazing / super / g' textfile.txt
Ще бъде създаден нов файл с името textfile.txt.backup. Можете да проверите дали двата файла са различни, като използвате разл команда.
diff textfile.txt textfile.txt.backup
Редактиране на низове в Linux със sed
Понякога, докато работите с текстови файлове на терминала, форматирането и редактирането на изхода за по-добра четливост става задължително. Sed и awk са помощни програми на командния ред в Linux, които позволяват на потребителя да работи ефективно с текстови файлове, като разделя данните на отделни редове.
Много потребители трудно запомнят аргументите и флаговете на командата sed, тъй като има много от тях, които са достъпни за използване. Знанието как да получите ръководства за командния ред за всяка команда на Linux ще ви помогне лесно да излезете от такива ситуации.
Всички основни команди за научаване на Linux команди от командния ред
Прочетете Напред
- Linux
- Текстов редактор
- Терминал
- Командния ред
Deepesh е младши редактор за Linux в MUO. Той пише информационно съдържание в интернет повече от 3 години. В свободното си време той обича да пише, да слуша музика и да свири на китара.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Още една стъпка…!
Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.