Nieuwe regel vervangen door komma met behulp van het `sed`-commando

How Replace Newline With Comma Using Sed Command



Elk teken of elke tekenreeks kan worden vervangen door het commando `sed` te gebruiken. Soms moeten we het nieuwe regelteken ( ) in een bestand vervangen door een komma. In dit artikel gebruiken we het `sed` commando om te vervangen door een komma.

`sed` gebruiken om te vervangen door een komma

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







Een bestand maken

In dit artikel laten we u zien hoe u het `sed`-commando gebruikt om te vervangen door een komma. Om deze tutorial te volgen, maakt u een tekstbestand met de naam Klanten.txt 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 door een komma met -z

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



$katKlanten.txt

$sed -Met 's/ /,/g;s/,$/ /'Klanten.txt

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





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

Het `sed` commando kan worden gebruikt om te vervangen door een komma door gebruik te maken van a, b, N en $! . Hier, tot wordt gebruikt om taken toe te voegen, B wordt gebruikt om de inhoud te vertakken, N 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.



$katKlanten.txt

$sed ':a;N;$!ba;s/ /,/g'Klanten.txt

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

Voorbeeld 3: Vervang 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 houdtekst toe te voegen, 1h wordt gebruikt om elke regel van het bestand vanaf de eerste regel naar de houdtekst 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 en wordt gebruikt om elk te vervangen N in de vasthoudtekst met een komma.

$katKlanten.txt

$sed 'H;1h;$!d;x;y/ /,/'Klanten.txt

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

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

Het `sed` commando kan worden gebruikt om te vervangen N met een komma met -N optie, die automatisch afdrukken verhindert. Zoals in het vorige voorbeeld, H wordt hier gebruikt om de laatste regel toe te voegen aan de vasthoudtekst, 1 uur wordt gebruikt om elke regel van het bestand naar de houdtekst te kopiëren, $ 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.

$katKlanten.txt

$sed-N'H;1u; ${g; s /N/,/g;p}'Klanten.txt

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

Voorbeeld 5: Vervang 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.

$katKlanten.txt

$sed-N'H;${x;s/ /,/g;s/^,//;p;}'Klanten.txt

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

Voorbeeld 6: Vervang 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 N wordt gebruikt om naar de volgende regel te gaan.

$katKlanten.txt

$katKlanten.txt| sed 'N;s/ /,/'

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

Conclusie

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