Att redigera textfiler på Linux för hand kan vara tråkigt. Det är därför det är bra att veta hur man snabbt ersätter textsträngar i filer med hjälp av kommandoraden. Om du är ny på Linux och inte vet hur man gör det kan vi hjälpa dig! Följ med när vi visar hur du byter ut en textsträng i en fil på Linux!
Ersätt textsträng i filen – sed
Sed-verktyget är det bästa sättet att ersätta en textsträng i en fil på Linux. Anledningen? Den är enkel att använda och gör sitt jobb väldigt bra. Sed är vanligtvis förinstallerat på 99 % av Linux-operativsystemen, så det finns inget behov av att installera det för att använda det.
Att ersätta en textsträng i en fil med Sed görs med kommandot sed -i. Så här använder du den. Öppna först ett terminalfönster på Linux-skrivbordet. Du kan öppna ett terminalfönster genom att trycka på Ctrl + Alt + T på tangentbordet.
När terminalfönstret är öppet och redo att användas, skriv ut sed -i i terminalprompten. Detta är början på ersättningskommandot.
sed -i
Efter att ha skrivit ut kommandot sed -i, lägg till ett ’citattecken. Detta citattecken är viktigt, eftersom all text som ersätts med sed -i måste börja efter detta tecken.
sed -i '
Efter det första ’-märket, skriv s/. s/ går direkt före den befintliga texten du vill ersätta med sed.
sed -i 's/
Nu när s/ skrivs in i terminalens kommandoradsprompt är det dags att tala om för sed vilken text som ska ersättas i filen. I det här exemplet kommer vi att ersätta ordet ”äpple”.
sed -i 's/apple
När texten vi vill ersätta skrivs in i kommandot är nästa steg att skriva in den nya texten som kommer att ersätta den. I det här exemplet kommer vi att ersätta ”äpplen” med ”apelsiner.”
sed -i 's/apples/oranges
När texten vi vill ersätta är skriven i kommandot (apelsiner), stäng av kommandot med g/. G/ säger åt sed att ersätta alla textinstanser (äpplen) med den nya texten (apelsiner). Det ska se ut som exemplet nedan.
Obs: om du inte vill ersätta varje text i filen (till exempel äpplen till apelsiner), ta bort g:et och kör det som sed -i ’s/apples/oranges/’ istället.
sed -i 's/apple/orange/g'
Slutligen, berätta för sed vilken fil texten är i som behöver bytas ut. I det här exemplet ä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 ersätta din textsträng i filen.
Ersätt textsträng i filen – Perl
Ett annat sätt att ersätta en textsträng i en fil på Linux är med programmeringsspråket Perl. Perl används för textbearbetning mycket, så naturligtvis kan den byta ut textsträngar i filer och är perfekt för detta användningsfall.
För att börja, se till att du har Perl installerat på din Linux-dator. De flesta Linux-operativsystem kommer med Perl installerat. Men om du inte har det, kolla ditt operativsystems hjälpsida för information om hur du får det att fungera.
Att använda Perl för att ersätta textsträngar 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 på det sättet.
När terminalfönstret är öppet och redo att användas, börja med att skriva perl -pe i kommandoraden. Kommandot perl -pe är vad som behövs för att ersätta en textsträng i en fil.
perl -pe
När du skriver ut perl -pe i terminalprompten måste du börja med det första citattecknet. Detta märke talar om för Perl var textersättningsområdet finns i kommandot.
perl -pe '
Efter det första citattecknet, lägg till s/, följt av textsträngen du vill ersätta, och en annan /. Till exempel, för att ersätta ”äpplen” i filen fruit.txt, skulle du skriva ut följande text.
perl -pe 's/apples/
När du har skrivit ut det eller de ord du vill ersätta, lägg till ordet som kommer att ersätta den befintliga texten. Till exempel, om du vill ersätta ”ä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 textsträngarna finns i kommandot måste du ange indatafilen som Perl använder. Till exempel, om du vill ersätta text i filen ”fruit.txt”, måste du ange det i kommandot.
Obs: i det här exemplet finns filen ”fruit.txt” i hemkatalogen (~/). Se till att ersätta ”~/fruit.txt” med din textfils plats för att kommandot ska fungera.
perl -pe 's/apples/oranges/' ~/fruit.txt
Nu när indatafilen (filen du ändrar med Perl) läggs till i kommandot, bör kommandot se ut som det gör nedan.
perl -pe 's/apples/oranges/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt
När kommandot ovan körs kommer textsträngen att ersättas med den nya texten du angav. I vårt exempel ersatte vi ”äpplen” med ”apelsiner”. För att se ändringarna, skriv in kommandot nedan.
cat fruit.txt