Ethvert tegn eller streng kan erstattes ved hjælp af kommandoen 'sed'. Nogle gange er vi nødt til at erstatte det nye linjetegn (\ n) i en fil med et komma. I denne artikel bruger vi kommandoen 'sed' til at erstatte \ n med et komma.
Brug 'sed' til at erstatte \ n med et komma
Mange problemer kan opstå, når \ n erstattes med et komma. Som standard slutter hver linje med \ n når du opretter en fil. Kommandoen 'sed' kan let deles på \ n og erstatte den nye linje med ethvert tegn. En anden afgrænser kan bruges i stedet for \ n, men kun når GNU sed bruges. Når \ n mangler i den sidste linje i filen, kan GNU sed undgå udskrivning \ n. Desuden tilføjes \ n normalt til hver på hinanden følgende output af 'sed'.
Opret en fil
I denne artikel viser vi dig, hvordan du bruger kommandoen 'sed' til at erstatte \ n med et komma. For at følge med i denne vejledning skal du oprette en tekstfil med navnet Kunder.txt med følgende tabeloplysninger om klienter.
ID | Navn | telefon | |
---|---|---|---|
c01 | Md. Rakib | [e-mail beskyttet] | 01856233238 |
c02 | Meher Afroze | [e-mail beskyttet] | 01733536342 |
c03 | Fakrul Ahsan | [e-mail beskyttet] | 01934737248 |
c04 | Helal Uddin | [e-mail beskyttet] | 01534895898 |
c05 | Nusrat Jahan | [e-mail beskyttet] | 01866345254 |
Eksempel 1: Erstat \ n med et komma ved hjælp af -z
Indstillingen -z bruges til at konvertere \ n til nulltegnet (\ 0). Indholdet af filen behandles som en enkelt linje, hvis den ikke indeholder nogen nul tegn. Kommandoen 'sed' konverterer den nye linje til null-tegnet og erstatter hver \ n med et komma ved hjælp af det første søge- og erstatningsmønster. Her bruges 'g' til globalt at søge efter \ n. Med det andet mønster for søgning og erstatning erstattes det sidste komma med \ n.
$ cat klienter.txt$ sed -z 's / \ n /, / g; s /, $ / \ n /' Kunder.txt
Følgende output produceres efter kørsel af kommandoerne.
Eksempel 2: Erstat \ n med et komma ved hjælp af a, b, $! og N
Kommandoen 'sed' kan bruges til at erstatte \ n med et komma ved hjælp af a, b, N og $!. Her, -en bruges til at tilføje opgaver, b bruges til at forgrene indholdet, N bruges til at gå til næste linje, og $! bruges til at forhindre, at udskiftningsopgaven anvendes på den sidste linje. Kommandoen erstatter hver \ n med komma undtagen den sidste linje.
$ cat klienter.txt$ sed ': a; N; $!ba; s / \ n /, / g 'Kunder.txt
Følgende output produceres efter kørsel af kommandoerne.
Eksempel 3: Erstat \ n med et komma ved hjælp af H, h, d, x og y
Hvis du vil udskifte det \ n) med et komma i en lille fil, kan følgende 'sed' kommando bruges. Her, H bruges til at føje den sidste linje til holdteksten, 1h bruges til at kopiere hver linje i filen til holdteksten fra den første linje, $!d bruges til at slette alle linjer undtagen den sidste linje, x bruges til at udveksle tilbageholdelsesteksten og mønsterområdet, og y bruges til at udskifte hver \ n i holdteksten med komma.
$ cat klienter.txt$ sed 'H; 1t; $!d; x; y / \ n /, / 'Kunder.txt
Følgende output produceres efter kørsel af kommandoerne.
Eksempel 4: Erstat \ n med et komma ved hjælp af -n, H, h, g og p
Kommandoen 'sed' kan bruges til at erstatte \ n med komma med -n valgmulighed, som forhindrer automatisk udskrivning. Som i det foregående eksempel, H bruges her til at føje den sidste linje til holdteksten, 1 time bruges til at kopiere hver linje i filen til tilbageholdelsesteksten, $ henviser til den sidste linje i filen, g bruges til at kopiere fra tilbageholdelsesteksten, og s bruges til at udskrive.
$ cat klienter.txt$ sed -n "H; 1h; \ $ g; s / \ n /, / g; p" Kunder.txt
Følgende output produceres efter kørsel af ovenstående kommandoer.
Eksempel 5: Erstat \ n med et komma ved hjælp af H, x, s
H, x og p er forklaret i tidligere eksempler. Det første søg og udskift udtryk erstatter hvert \ n med et komma, og det andet søge- og erstatningsudtryk erstatter et komma i begyndelsen af en linje med et mellemrum.
$ cat klienter.txt$ sed -n 'H; $ x; s / \ n /, / g; s / ^, //; p;' Kunder.txt
Følgende output produceres efter kørsel af ovenstående kommandoer.
Eksempel 6: Erstat \ n med et komma ved hjælp af N og 'cat'
Kommandoen 'cat' bruges her til at sende indholdet af filen til kommandoen 'sed' og N bruges til at gå til næste linje.
$ cat klienter.txt$ cat klienter.txt | sed 'N; s / \ n /, /'
Følgende output produceres efter kørsel af ovenstående kommandoer.
Konklusion
Det kan være nødvendigt at erstatte \ n med et komma for at overføre data fra et filformat til et andet. Denne type udskiftning kan også udføres ved hjælp af andre Linux-kommandoer. Mange kommandomuligheder, såsom H, N, h og x, kan bruges med kommandoen 'sed' til at fuldføre denne opgave. Denne tutorial går over flere måder at bruge kommandoen 'sed' til at erstatte \ n med et komma.