Namnet sed står för “Stream Editor” och det är ett kraftfullt verktyg som låter dig analysera och transformera text direkt från kommandoraden. Oavsett om du har att göra med konfigurationsfiler, skript eller till och med vanlig text, är sed ditt bästa verktyg för snabb och effektiv texthantering.
Den huvudsakliga användningen av sed är att söka efter specifika textmönster och ersätta dem med något annat. Du kan också ta bort eller infoga rader och utföra andra textomvandlingar. Det är särskilt användbart för att redigera batchfiler eller arbeta med skalskript för att automatisera olika uppgifter.
Även om sed är otroligt mångsidigt på egen hand, används det ofta i kombination med andra Linux-kommandon som awk för textbehandling, grep för mönstersökning och cat för att visa filinnehåll. Tillsammans bildar dessa verktyg en robust verktygsuppsättning för textbehandling i Linux-miljön.
Allmän syntax för kommandot sed:
$ sed [OPTIONS] [FILE]...
1. Textersättning
echo "Text" | sed 's/Replaceable_Word/The_Word_That_Replaces/'
Använd kommandot sed för att hitta och ersätta någon del av texten. ‘s’ indikerar en sök- och ersätt-uppgift.
Exempel:
Låt oss säga att du har en sträng “I love CSS” och du vill ersätta “CSS” med “CSS Libraries”.
echo "I love CSS" | sed 's/CSS/CSS Libraries/'
I love CSS Libraries
I det här exemplet matar ekokommandot “Jag älskar CSS” och sedan ersätter sed “CSS” med “CSS Libraries.” Slutresultatet är “Jag älskar CSS-bibliotek.”
2. Ersätt text på en specifik rad i en fil
sed '[line] s/harder/easier/g' [file]
Alternativet ‘g’ för kommandot sed används för att ersätta allt som matchar mönstret.
Exempel:
Anta att du har en textfil som heter example.txt med följande innehåll:
Life is hard. Working harder is the key to success. The harder you work, the luckier you get.
För att ersätta alla förekomster av ordet “svårare” med “enklare” på rad 2 i exempel.txt, kör du:
sed '2 s/harder/easier/g' example.txt
Efter att ha kört kommandot skulle utgången som visas i terminalen vara:
Life is hard. Working easier is the key to success. The harder you work, the luckier you get.
Observera att ordet “svårare” endast ersätts med “lättare” på rad 2.
Om du vill spara dessa ändringar tillbaka till filen kan du använda alternativet -i:
sed -i '2 s/harder/easier/g' example.txt
Efter att ha kört det här kommandot ändras innehållet i example.txt permanent till:
Life is hard. Working easier is the key to success. The harder you work, the luckier you get.
3. Ersätt den första matchningen med ny text.
sed 's/harder/easier/' [file]
Detta kommando ersätter endast den första matchningen i sökmönstret.
Exempel:
Anta att du har en textfil som heter example.txt med följande innehåll:
Life is harder than we think. Working harder is the key to success. No pain, no gain. Work harder.
Du kan använda kommandot sed för att ersätta ordet “hårdare” med “enklare” på varje rad:
sed 's/harder/easier/' example.txt
Efter att ha kört kommandot blir resultatet:
Life is easier than we think. Working easier is the key to success. No pain, no gain. Work easier.
4. Ta bort matchande rader
sed '/Something/d' example.txt
Använd alternativet d i kommandot sed för att ta bort valfri rad från en fil.
Exempel:
Låt oss säga att du har en fil som heter example.txt med följande innehåll:
Hello World Something is here Another line Yet another line Something else
Att köra kommandot sed ‘/Something/d’ example.txt kommer att ge:
Hello World Another line Yet another line
5. Hitta ett skiftlägeskänsligt ord och ta bort det.
sed '/Sample/Id' example.txt
Alternativet I för kommandot sed används för att söka efter ett matchande mönster på ett skiftlägesokänsligt sätt.
Exempel:
Anta att du har en fil som heter example.txt med följande innehåll:
This is a Sample line. Another line. Yet another Sample line. Final line.
Om du kör kommandot sed ‘/Sample/Id’ example.txt får du följande utdata:
Another line. Final line.
6. Byt ut ord med versaler
sed 's/\(libraries\)/\U\1/Ig' example.txt
Använd U-alternativet i sed-kommandot för att konvertera valfri text till versaler.
Exempel:
Anta att du har en fil som heter example.txt med följande innehåll:
I love libraries. libraries are great. You can find many books in libraries.
Efter att ha kört kommandot sed blir resultatet:
I love LIBRARIES. LIBRARIES are great. You can find many books in LIBRARIES.
7. Byt ut ord med små bokstäver.
sed 's/\(libraries\)/\L\1/Ig' example.txt
L-alternativet för sed-kommandot används för att konvertera all text till gemener.
Exempel:
Anta att du har en fil som heter example.txt med följande innehåll:
Libraries are essential for research. libraries help in many ways. I love LIBRARIES!
Efter att ha kört kommandot sed blir resultatet:
libraries are essential for research. libraries help in many ways. I love libraries!
8. Infoga tomma rader i en fil.
sed G [file]
Använd G-alternativet för sed-kommandot för att infoga tomma rader efter varje rad i filen.
Exempel:
Låt oss säga att du har en fil som heter example.txt med följande innehåll:
Hello World This Is A Test
Du kan köra följande kommando för att lägga till ytterligare en ny rad i slutet av varje rad:
sed G example.txt
Efter att ha kört kommandot blir resultatet:
Hello World This Is A Test
9. Skriv ut radnumren från filen
sed '=' [file]
Tecknet = används för att skriva ut ett radnummer före varje textrad i en fil.
Exempel:
Anta att du har en fil som heter example.txt med följande innehåll:
Hello World This Is A Test
Du kan köra följande kommando för att skriva ut radnumren före varje rad:
sed '=' example.txt
1 Hello 2 World 3 This 4 Is 5 A 6 Test
