sed

Sådan udskiftes alt efter mønster ved hjælp af 'sed' kommando

Sådan udskiftes alt efter mønster ved hjælp af 'sed' kommando

Udskiftningsopgaver kan udføres i Linux på forskellige måder. 'sed' kommando er en af ​​måderne til at udføre udskiftningsopgaver. Denne kommando kan bruges til at erstatte tekst i en streng eller en fil ved hjælp af et andet mønster. Hvordan du kan erstatte alt efter det matchende mønster ved hjælp af kommandoen 'sed', vises i denne vejledning.

Udskift alt efter kampen i en streng:

Hvordan delen af ​​en streng kan udskiftes baseret på et matchende mønster og $ PARTITION_COLUMN er vist i dette afsnit af denne vejledning. Men denne variabel fungerer, hvis mønsteret matcher et hvilket som helst ord i begyndelsen eller midten af ​​strengen. Det erstatter ikke teksten, hvis mønsteret matcher det sidste ord i strengen.

Eksempel 1: Udskift alt efter kampen ved hjælp af $ PARTITION_COLUMN

Den følgende kommando søger i tegnet 'a', og den resterende del efter 'a' erstattes af teksten "et populært blog-site". $ PARTITION_COLUMN.* bruges til at definere den resterende del efter tegnet, 'a'.

$ echo "LinuxHint er et websted" | sed "s / a $ PARTITION_COLUMN.* / et populært blog-site / "

Følgende output vises efter kørsel af kommandoen. Her er 'et websted' blevet erstattet af 'et populært blog-websted'.


Følgende mønster søger efter ordet 'web'I strengen og udskift den resterende del med'web'Ved teksten,'et populært blog-site'hvis kampen eksisterer og'web'Er ikke den del af strengens sidste ord.

$ echo "LinuxHint er et websted" | sed "s / web.* $ PARTITION_COLUMN.* / et populært blog-site / "

Følgende output vises efter kørsel af kommandoen. Her er 'websted' det sidste ord i strengen, og der er ikke foretaget nogen udskiftning af denne grund.

Eksempel 2: Udskift alt efter match ved hjælp af mønster

Den følgende kommando søger efter ordet 'bash'globalt i strengen og udskift alt med ordet, hvis ordet findes i strengen. ''gBruges her til global søgning.

$ echo "Jeg kan godt lide bash-programmering" | sed "s / bash.* / python-script / g "

Følgende output vises efter kørsel af kommandoen. Her findes 'bash' midt i strengen, og udskiftningen er udført.

Udskift alt efter kampen i en fil:

Alt indhold på en bestemt linje eller flere linjer eller resterende linjer i en fil efter kampen kan udskiftes ved hjælp af 'sedkommando. Opret en tekstfil med navnet tilstedeværelse.txt med følgende indhold for at teste eksemplerne vist i dette afsnit.

tilstedeværelse.txt

1108885 er til stede
1999979 er til stede
1769994 er fraværende
1105656 er fraværende
1455999 er fraværende

Eksempel -3: Erstat alt indhold fra en linje i en fil efter kampen

Den følgende 'sed' kommando søger på nummeret 1769994 i filen, og alt med nummeret erstattes af teksten, '1586844 er til stede', hvis nummeret findes i en hvilken som helst linje i filen.

$ kat allendence.txt
$ sed "s / 1769994.* / 1586844 er til stede / "fremmøde.txt

Følgende output vises med kommandoerne. Her findes søgenummeret i filens tredje linje, og udskiftningen er udført.

Eksempel -4: Erstat alt indhold fra de flere linjer i en fil efter kampen

Følgende kommando 'sed' viser brugen af ​​variablen $ PARTITION_COLUMN til at erstatte flere linjer fra filen. Kommandoen søger '110' i starten af ​​hver linje i filen og erstatter alt med '110' med teksten 'Ugyldig post', hvor den matchende tekst findes.

$ kattebesøg.txt
$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Ugyldig adgang / "fremmøde.txt

Følgende output vises efter kørsel af kommandoerne. '110' findes i to linjer i filen, og disse er blevet erstattet af den erstatningstekst.

Eksempel 5: Udskift alt indhold fra en linje i en fil ved hjælp af 'c' efter kampen

Det følgende 'sed'kommando viser brugen af'c'at erstatte alt efter kampen. Her, 'c'angiver ændringen. Kommandoen søger efter ordet 'til stede'i filen og udskift alt på linjen med teksten,'Denne linje erstattes'hvis ordet findes i en hvilken som helst linje i filen.

$ kat tilstedeværelse.txt
$ sed '/ nuværende / c Denne linje erstattes' deltagelse.txt

Følgende output vises efter kørsel af kommandoerne. Ordet 'nuværende' findes i de første to linjer i filen, og disse to linjer er blevet erstattet af den erstattende tekst.

Eksempel 6: Erstat alt indhold fra en linje i en fil baseret på start- og slutmønster

Nogle gange er det nødvendigt at udskifte tekst baseret på start- og slutmønsteret. Den følgende 'sed' kommando viser hvordan man definerer start- og slutmønstre for at erstatte linjer fra en fil. Kommandoen søger i disse linjer i filen, der starter med tallet 110 og slutter med ordet 'fraværende' og erstatter alt med ordet 'erstattet', hvor mønstrene matcher.

$ kattebesøg.txt
$ sed -e 's / ^ 110.* fraværende $ / erstattet / g 'fremmøde.txt

Følgende output vises efter kørsel af kommandoerne. Her starter den første og den fjerde linje med tallet 110, men ordet 'fraværende' findes kun i den fjerde linje. Så den fjerde linje i filen er blevet erstattet af den erstattende tekst.

Konklusion:

'sed' kommando er et meget kraftfuldt værktøj fra Linux til at udføre forskellige typer tekstbehandlingsrelaterede opgaver. Udskiftningsopgaven baseret på det matchende mønster diskuteres i denne vejledning ved hjælp af forskellige typer mønstre i kommandoen 'sed'. $ PARTITION_COLUMN, 'c' og '.* 'bruges i denne vejledning til at erstatte alt i en linje i filen, hvor det matchende mønster findes. Brugen af ​​nogle tegn med definerende mønstre er vist her, såsom '^' og '$'. Der findes mange andre tegn for at definere mønsteret i regulært udtryk til søgningsformål. Jeg håber, at denne tutorial hjælper læseren med at kende det grundlæggende ved at erstatte alt fra en fil efter kampen.

Mus Museklik på venstre museknap fungerer ikke på Windows 10
Museklik på venstre museknap fungerer ikke på Windows 10
Hvis du bruger en dedikeret mus med din bærbare computer eller stationære computer, men musens venstre-klik-knap fungerer ikke på Windows 10/8/7 af en...
Mus Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Hvis du finder ud af, at din musemarkør hopper eller bevæger sig alene, automatisk tilfældigt, mens du skriver Windows-bærbar computer eller computer,...
Mus Sådan vender du musens og touchpadsens rulle retning i Windows 10
Sådan vender du musens og touchpadsens rulle retning i Windows 10
Mus og Touchpads gør ikke kun computing let, men mere effektiv og mindre tidskrævende. Vi kan ikke forestille os et liv uden disse enheder, men det er...