sed

Hur man byter ut den senaste händelsen med 'sed'

Hur man byter ut den senaste händelsen med 'sed'
'sed' -kommandot används i Linux för olika typer av textåtgärder, såsom infoga, radera, ersätta osv. Olika typer av utbytesuppgifter kan göras genom att enkelt använda kommandot 'sed'. Varje ersättningsuppgift kan göras baserat på söktexten eller mönstret. Söktexten eller mönstret kan förekomma flera gånger i strängen eller i en fil där sökningen kommer att göras. Hur du kan ersätta den sista förekomsten av söktexten eller mönstret har visats i denna handledning.

Ersätt den sista förekomsten av texten i en sträng:

Detta avsnitt visar hur den senaste förekomsten av sökmönstret i en sträng kan ersättas med kommandot 'sed'.

Exempel 1: Ersätt den sista förekomsten av ett ord baserat på mönster

Följande "sed" -kommando söker efter ordet 'PHP' i strängen och ersätt sökordet med ordet 'AngularJS' om ordet finns i strängen.

$ echo "Java PHP Bash Python JavaScript PERL PHP Laravel" |
sed's / \ (.* \) PHP / \ 1AngularJS / '

Följande utdata visas när kommandot har körts. Här, ordet 'PHP' finns två gånger i strängen, och den senaste förekomsten har ersatts med ordet ' AngularJS''.

Exempel 2: Ersätt den sista förekomsten av siffrabaserat mönster

Följande "sed" -kommando söker efter en siffra i strängen och ersätter den sista siffran med numret 9.

$ echo "Det första räknarvärdet 2. Det andra räknarvärdet 4 "|
sed's / \ (.* \) [0-9]) * / \ 19 / '

Följande utdata visas när kommandot har körts. Här visas siffran två gånger i strängen och den sista siffran, 4, har ersatts med numret 9.

Exempel 3: Ersätt den sista siffran i ett tal baserat på mönster

Följande "sed" -kommando ersätter den sista siffran som finns i strängvärdet med värdet med dubbel noll (0 0).

$ echo "Produktpriset är $ 500."| sed's / \ (.* \) [0-9] / \ 100 / '

Följande utdata visas när kommandot har körts. Här, 500 finns i strängvärdet. Så, enligt ersättningskommandot, den sista nollan av 500 har ersatts med två dubbla nollor och det ersatta värdet är 5000.

Exempel 4: Ersätt den sista förekomsten av ett ord med ett annat ord

Följande "sed" -kommando söker efter ordet 'Juni' i strängen och ersätt ordets sista förekomst med värdet, 'Maj'.

$ printf "% s \ n" jan feb juni apr juni dec tr '\ n' "|
sed's / \ (.* \) Jun / \ 1May / '| tr "'\ n'

Följande utdata visas när kommandot har körts. Här, ordet 'Juni' finns två gånger i strängen, och den senaste förekomsten har ersatts med ordet 'Maj'.

Ersätt den sista förekomsten av en text i en fil:

Skapa en textfil med namnet Försäljning.Text med följande innehåll för att testa kommandot 'sed' som används i den här delen av handledningen för att ersätta den senaste förekomsten av en textbaserad på mönstret.

Försäljning.Text

Månadsår Belopp
Januari 2018 $ 200000
Mars 2019 $ 300000
April 2019 $ 150000
Mars 2020 $ 350000
Maj 2019 $ 210000
Januari 2020 $ 240000

Exempel 5: Ersätt den sista förekomsten av ett ord med ett annat ord

Följande "sed" -kommando söker efter ordet 'Januari'i filen och ersätt den sista förekomsten av detta ord med ordet, 'Juli''.

$ kattförsäljning.Text
$ sed '$ s / januari / juli /' Försäljning.Text

Följande utdata visas när kommandona har körts. Ordet 'Januari' visas två gånger i filen. Den senaste händelsen som finns i 7th raden i filen har ersatts med ordet 'Julii utgången.

Exempel 6: Ersätt den sista förekomsten av ett nummer med ett annat nummer

'tac' kommandot används för att vända innehållet i filen. 'tac' kommandot används med kommandot 'sed' i följande kommando för att ersätta den senaste förekomsten av '' 2019'med ordet, 2017.

$ kattförsäljning.Text
$ tac Försäljning.txt | sed '0, / 2019 / s / 2019/2017 /' | tac

Följande utdata visas när kommandona har körts. Här är årets värde, '' 2019'visas tre gånger i filen. Den första, 'tac' kommandot har vänt innehållet i filen och skickat utdata till 'sed' kommando för att ersätta den första förekomsten av '' 2019 '' vilket är den sista förekomsten i filen efter årsvärdet, 2017. Efter utbytet har utdata skickats till 'tac' kommando för att vända utmatningen igen. På detta sätt är den sista förekomsten av '2019'har ersatts med värdet, 2017''.

Exempel 7: Ersätt allt i en rad baserat på den sista förekomsten av ett ord

Det följande 'sed' kommandot ersätter raden med en flik (\ t) avgränsad text där raden börjar med strängen "Mar" för sista gången i filen.

$ kattförsäljning.Text
$ tac Försäljning.txt | sed '0, / ^ Mar.* / s / ^ mar.* / Juli \ t \ t2018 \ t $ 400000 / '| tac

Följande utdata visas när kommandona har körts. Två rader i filen börjar med strängen, "Mar", och den sista förekomsten av denna sträng visas i 5th linje. Den första 'tac' kommandot har använts för att vända innehållet i filen och skickat utdata till 'sed ' kommando. ''sed'kommando har ersatt raden med en text,'Juli 2018 $ 400000där söksträngen hittades för första gången. Produktionen av den sedkommandot har skickats till 'tac' kommandot igen för att vända utdata som är huvudinnehållet i filen.

Slutsats:

kommandot 'sed' kan användas för att ersätta valfri del av en sträng eller en rad i filen på olika sätt med hjälp av reguljära uttrycksmönster. Denna handledning visade sätten att ersätta den sista förekomsten av söktexten i en sträng eller en fil med hjälp av flera "sed" -kommandon. Hur kommandot 'tac' kan användas med kommandot 'sed' för att ersätta den sista förekomsten av söktexten har också visats i denna handledning. Men alla kommandon som används här kommer att generera utdata tillfälligt. Du måste använda alternativet '-i' med kommandot 'sed' för att ändra innehållet i filen permanent baserat på mönstret.

Mus Hur man ändrar vänster och höger musknapp på Windows 10 PC
Hur man ändrar vänster och höger musknapp på Windows 10 PC
Det är en hel norm att alla datormusenheter är ergonomiskt utformade för högerhänta användare. Men det finns musenheter tillgängliga som är speciellt ...
Mus Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Att använda en mus eller tangentbord i fel hållning av överdriven användning kan resultera i många hälsoproblem, inklusive stam, karpaltunnelsyndrom o...
Mus Lägg till musgester i Windows 10 med dessa gratisverktyg
Lägg till musgester i Windows 10 med dessa gratisverktyg
Under senare år har datorer och operativsystem utvecklats kraftigt. Det fanns en tid då användare var tvungna att använda kommandon för att navigera g...