Slett linjer fra en fil ved hjelp av Sed

Unix- verktøyet SED gir en effektiv og en allsidig måte å slette en eller flere linjer fra en utpekt fil for å matche brukerens behov.

Denne Unix- kommandoen brukes til kommandolinjebehandling . Dette verktøyet kan brukes til å slette uttrykk fra en fil som kan identifiseres av en spesifiserende avgrenser (for eksempel komma, fan eller mellomrom), etter linjenummer, eller ved å søke etter en streng, et uttrykk eller adressen til en linje i Syntaxen til Sed.

Sed: Slett en eller flere linjer fra en fil

Slik fjerner du en eller flere linjer fra en fil.

syntax

 sed '[/] d'

sed '{[/] [, ] [/] d'

/.../ = avgrensere

n = linjenummer

streng = streng funnet i linje

regex = vanlig uttrykk tilsvarende det søkte mønsteret

addr = adresse på en linje (tall eller mønster)

d = slette

Eksempler på Sed

Her er noen eksempler på hvordan du bruker syntaxen ovenfor.

Bruk følgende kode for å fjerne den tredje linjen:

 sed '3d' fileName.txt 

Fjern linjen som inneholder strengen "awk, " ved å bruke:

 sed '/ awk / d' filnavn.txt 

Du kan fjerne den siste linjen ved å skrive inn:

 sed '$ d' filnavn.txt 

Eller fjern alle tomme linjer gjennom:

 sed '/ ^ $ / d' filnavn.txt

sed '/./!d' filnavn.txt

Fjern linjematchingen med et vanlig uttrykk (ved å fjerne en som inneholder digitale tegn, minst 1 siffer, plassert på slutten av linjen):

 sed '/ [0-9 /] [0-9] * $ / d' filnavn.txt 

Fjern intervallet mellom linjene 7 og 9:

 sed '7, 9d' filnavn.txt 

Samme operasjon som ovenfor, men erstatte adressen med parametere:

 sed '/ -Start /, / - End / d' filnavn.txt 

Ovennevnte eksempler endres bare ved visning av filen (stdout1 = skjerm).

For permanente endringer i de gamle versjonene (<4) bruk en midlertidig fil for GNU sed ved hjelp av "-i [suffix]" :

 sed -i ".bak" '3d' filnavn.txt 
Forrige Artikkel Neste Artikkel

Beste Tips