Att manuellt modifiera textfiler i Linux kan vara en aning omständligt. Därför är det värdefullt att känna till hur man snabbt kan byta ut textsekvenser i filer med hjälp av kommandoraden. Om du är nybörjare på Linux och inte är bekant med denna process, kan vi hjälpa dig! Häng med när vi demonstrerar hur du ersätter en textsekvens i en fil på Linux.
Ändra textsekvens i filen med sed
Verktyget sed är ett utmärkt alternativ för att byta ut en textsekvens i en fil i Linux. Varför? Det är användarvänligt och utför uppgiften på ett effektivt sätt. Sed är vanligtvis förinstallerat på majoriteten av Linux-system, vilket innebär att du inte behöver installera det separat för att kunna använda det.
För att ersätta en textsekvens i en fil med sed används kommandot `sed -i`. Här följer anvisningar för hur du använder det. Börja med att öppna ett terminalfönster på ditt Linux-skrivbord. Du kan öppna ett terminalfönster genom att trycka `Ctrl + Alt + T` på tangentbordet.
När terminalfönstret är öppet och redo, skriv `sed -i` i terminalprompten. Detta markerar startpunkten för ersättningskommandot.
sed -i
Efter att ha angett kommandot `sed -i`, lägg till ett enkelt citationstecken (`’`). Detta citationstecken är viktigt eftersom all text som ska ersättas med `sed -i` måste inledas efter detta tecken.
sed -i '
Efter det första enkelt citationstecknet, skriv `s/`. `s/` placeras direkt före den befintliga text som du vill ersätta med sed.
sed -i 's/
Nu när `s/` har skrivits in i terminalens kommandoradsprompt är det dags att ange för sed vilken text som ska bytas ut i filen. I detta exempel kommer vi att byta ut ordet ”äpple”.
sed -i 's/apple
När texten som ska ersättas är inmatad i kommandot, är nästa steg att skriva in den nya texten som ska ersätta den. I det här fallet kommer vi att byta ut ”äpple” mot ”apelsiner”.
sed -i 's/apples/oranges
När texten som ska ersätta (apelsiner) är inskriven, avsluta kommandot med `g/`. `g/` instruerar sed att ersätta alla förekomster av texten (äpplen) med den nya texten (apelsiner). Det ska se ut som i exemplet nedan.
Obs: Om du inte vill ersätta varje förekomst av texten i filen (till exempel äpplen till apelsiner), utelämna `g:`et och kör kommandot som `sed -i ’s/apples/oranges/’` istället.
sed -i 's/apple/orange/g'
Slutligen, ange för sed vilken fil texten som ska bytas ut finns i. I detta exempel är `fruit.txt` i hemkatalogen målet.
sed -i 's/apples/oranges/g' ~/fruit.txt
Tryck på enter-tangenten för att utföra kommandot och byta ut textsekvensen i filen.
Ändra textsekvens i filen med Perl
Ett annat alternativ för att byta ut en textsekvens i en fil på Linux är att använda programmeringsspråket Perl. Perl är flitigt använt för textbearbetning och lämpar sig därför väl för att ersätta textsekvenser i filer.
För att börja, kontrollera att Perl är installerat på din Linux-dator. De flesta Linux-distributioner levereras med Perl förinstallerat. Om det inte är fallet, kolla ditt operativsystems hjälpsidor för information om hur du installerar det.
Användning av Perl för att byta ut textsekvenser i en fil kräver terminalen. Öppna en terminal på Linux-skrivbordet genom att trycka på `Ctrl + Alt + T` på tangentbordet, eller sök efter ”Terminal” i appmenyn och starta den därifrån.
När terminalfönstret är öppet och redo att användas, börja med att skriva `perl -pe` i kommandoraden. Kommandot `perl -pe` behövs för att ersätta en textsekvens i en fil.
perl -pe
Efter att ha skrivit `perl -pe` i terminalprompten, behöver du inleda med det första enkelt citationstecknet (`’`). Detta tecken instruerar Perl om var text-ersättningsområdet finns i kommandot.
perl -pe '
Efter det första enkelt citationstecknet, lägg till `s/`, följt av textsekvensen som ska ersättas och ytterligare ett `/`. Om du till exempel ska byta ut ”äpplen” i filen `fruit.txt`, skulle du skriva in följande text:
perl -pe 's/apples/
När du har angett ordet eller orden som ska bytas ut, lägg till ordet som ska ersätta den befintliga texten. Om du till exempel vill byta ut ”äpplen” i `fruit.txt` med ”apelsiner”, lägg till ”apelsiner” efter `perl -pe ’s/apples/` så att det ser ut som `perl -pe ’s/apples/oranges/’`.
perl -pe 's/apples/oranges/
När båda textsekvenserna är med i kommandot, måste du ange den indatafil som Perl ska använda. Om du till exempel vill byta ut text i filen `fruit.txt`, måste du specificera det i kommandot.
Obs: I detta exempel finns filen `fruit.txt` i hemkatalogen (`~/`). Se till att byta ut `~/fruit.txt` mot platsen för din textfil för att kommandot ska fungera.
perl -pe 's/apples/oranges/' ~/fruit.txt
Nu när indatafilen (filen som du ändrar med Perl) har lagts till i kommandot, ska kommandot se ut som nedan:
perl -pe 's/apples/oranges/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt
När ovanstående kommando körs, kommer textsekvensen att ersättas med den nya texten du har specificerat. I vårt fall ersatte vi ”äpplen” med ”apelsiner”. För att se ändringarna, ange nedanstående kommando:
cat fruit.txt