sed

Nieuwe regel vervangen door komma met het 'sed'-commando

Nieuwe regel vervangen door komma met het 'sed'-commando

Elk teken of elke tekenreeks kan worden vervangen door de opdracht 'sed' te gebruiken. Soms moeten we het teken voor de nieuwe regel (\n) in een bestand vervangen door een komma. In dit artikel gebruiken we de opdracht 'sed' om \n te vervangen door een komma.

'sed' gebruiken om \n te vervangen door een komma

Er kunnen veel problemen optreden bij het vervangen van \n door een komma. Standaard eindigt elke regel met \n bij het maken van een bestand. Het 'sed'-commando kan gemakkelijk worden gesplitst op \n en de nieuwe regel vervangen door een willekeurig teken. Een ander scheidingsteken kan worden gebruikt in plaats van \n, maar alleen als GNU sed wordt gebruikt. Als de \n in de laatste regel van het bestand ontbreekt, kan GNU sed voorkomen dat \n . wordt afgedrukt. Verder wordt \n meestal toegevoegd aan elke opeenvolgende uitvoer van 'sed'.

Een bestand maken

In dit artikel laten we u zien hoe u de opdracht 'sed' gebruikt om \n te vervangen door een komma. Om deze tutorial te volgen, maakt u een tekstbestand met de naam Klanten.tekst met de volgende klantgegevens in tabelvorm:.

ID kaart Naam E-mail Telefoon
c01 Md. Rakibo [e-mail beveiligd] 01856233238
c02 Meher Afroze [e-mail beveiligd] 01733536342
c03 Fakrul Ahsan [e-mail beveiligd] 01934737248
c04 Helal Uddin [e-mail beveiligd] 01534895898
c05 Nusrat Jahan [e-mail beveiligd] 01866345254

Voorbeeld 1: Vervang \n door een komma met -z

De -z optie wordt gebruikt om \n te converteren naar het null-teken (\0). De inhoud van het bestand wordt behandeld als een enkele regel als het geen null-tekens bevat. Het 'sed'-commando converteert de nieuwe regel naar het null-teken en vervangt elke \n door een komma door het eerste zoek- en vervangpatroon te gebruiken. Hier wordt 'g' gebruikt om globaal te zoeken naar \n. Bij het tweede zoek- en vervangpatroon wordt de laatste komma vervangen door \n.

$ kat Klanten.tekst
$ sed -z 's/\n/,/g;s/,$/\n/' Klanten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de opdrachten:.

Voorbeeld 2: Vervang \n door een komma met a, b, $! en N

Het 'sed'-commando kan worden gebruikt om \n te vervangen door een komma door gebruik te maken van a, b, N en $!. Hier, een wordt gebruikt om taken toe te voegen, b wordt gebruikt om de inhoud te vertakken, nee wordt gebruikt om naar de volgende regel te gaan, en $! wordt gebruikt om te voorkomen dat de vervangende taak wordt toegepast op de laatste regel. De opdracht vervangt elke \n met een komma behalve de laatste regel.

$ kat Klanten.tekst
$ sed ':a;N;$!ba;s/\n/,/g' Klanten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de opdrachten:.

Voorbeeld 3: Vervang \n door een komma met H, h, d, x en y

Als u wilt vervangen: \n) met een komma in een klein bestand, dan kan het volgende 'sed'-commando worden gebruikt. Hier, H wordt gebruikt om de laatste regel aan de vasthoudtekst toe te voegen, 1h wordt gebruikt om elke regel van het bestand vanaf de eerste regel naar de vasthoudtekst te kopiëren, $!d wordt gebruikt om alle regels behalve de laatste regel te verwijderen, X wordt gebruikt om de vasthoudtekst en patroonruimte uit te wisselen, en ja wordt gebruikt om elk te vervangen \n in de vasthoudtekst met een komma.

$ kat Klanten.tekst
$ sed 'H;1h;$!d;x;y/\n/,/' Klanten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de opdrachten:.

Voorbeeld 4: Vervang \n door een komma met -n ,H, h, g en p

Het 'sed'-commando kan worden gebruikt om te vervangen \n met een komma met -nee optie, die automatisch afdrukken voorkomt. Zoals in het vorige voorbeeld, H wordt hier gebruikt om de laatste regel toe te voegen aan de vasthoudtekst, 1u wordt gebruikt om elke regel van het bestand naar de houdtekst te kopiëren copy, $ verwijst naar de laatste regel van het bestand, g wordt gebruikt om uit de vasthoudtekst te kopiëren, en p wordt gebruikt om af te drukken.

$ kat Klanten.tekst
$ sed -n  "H;1h;\$g;s/\n/,/g;p" Klanten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:.

Voorbeeld 5: Vervang \n door een komma met H, x, p

H, x en p zijn uitgelegd in eerdere voorbeelden. De eerste zoek- en vervanguitdrukking vervangt elk \n met een komma, en de tweede zoek- en vervanguitdrukking vervangt een komma aan het begin van een regel door een spatie.

$ kat Klanten.tekst
$ sed -n  'H;$x;s/\n/,/g;s/^,//;p;' Klanten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:.

Voorbeeld 6: Vervang \n door een komma met N en 'cat'

Het 'cat'-commando wordt hier gebruikt om de inhoud van het bestand naar het 'sed'-commando te sturen, en nee wordt gebruikt om naar de volgende regel te gaan.

$ kat Klanten.tekst
$ kat Klanten.txt | sed 'N;s/\n/,/'

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:.

Conclusie

Het kan nodig zijn om \n te vervangen door een komma om gegevens van het ene bestandsformaat naar het andere over te brengen. Dit type vervanging kan ook worden gedaan door andere Linux-commando's te gebruiken. Veel opdrachtopties, zoals H, N, h en x, kunnen worden gebruikt met de opdracht 'sed' om deze taak te voltooien. Deze tutorial behandelt verschillende manieren om de opdracht 'sed' te gebruiken om \n te vervangen door een komma.

Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...
Beste spellen om te spelen met handtracking
Oculus Quest introduceerde onlangs het geweldige idee van handtracking zonder controllers. Met een steeds toenemend aantal games en activiteiten die f...
OSD-overlay tonen in Linux-apps en -games op volledig scherm
Het spelen van games op volledig scherm of het gebruik van apps in de modus volledig scherm zonder afleiding kan u afsnijden van relevante systeeminfo...