Puncte:0

Convertiți fișierul de ieșire cu următoarele coloane în CSV, eliminând conductele

drapel in

Iată ce am în fișierul meu de ieșire:

    v6_ntoa | v6_ntoa | id | client_syn_packets
---------------+--------------+-------------+----- ---------------
 105.245.90.61 | 82.17.112.84 | 15426766476 | 1

Aș dori ca acesta să fie convertit în fișierul csv în următorul format:

105.245.90.61,82.17.112.84,15426766476,1

Aveți nevoie de ajutorul vostru vă rog (sed, awk sau în orice alt mod). Am încercat mai multe moduri diferite, dar nu am reușit să scot țevile și distanța adecvată.

drapel hr
Există doar o singură linie de date? Doriți să păstrați informațiile din antet?
drapel in
nu trebuie să păstrați informațiile din antet. da, este o singură linie de date
drapel gi
ai incercat solutia mea? https://askubuntu.com/a/1395720/796708
Puncte:1
drapel gi

Folosind Miller și coadă și alergare

<input.txt coada -n +3 | mlr --csv --ifs "|" -N spatiu alb curat

tu ai

105.245.90.61,82.17.112.84,15426766476,1

Cateva note:

  • <input.txt coada -n +3 pentru a scoate doar înregistrarea dorită
  • --dacă „|”, pentru a seta separatorul de câmp
  • -N pentru a nu seta nicio intrare și ieșire de titlu
  • spatiu curat-alb pentru a curăța spațiile albe
Puncte:0
drapel hr

Probabil cel mai simplu:

$ sed -n '3s/ *| */,/gp' fișier
 195.245.90.61,62.17.112.84,15426766476,1

(rețineți totuși că acest lucru lasă un spațiu de început; puteți adăuga un alt înlocuitor pentru a-l elimina dacă este o problemă).

Dacă doriți să deveniți elegant, utilizați GNU awk și definiți un câmp ca orice succesiune de caractere care nu includ spații sau bare:

$ gawk 'BEGIN{FPAT="[^ |]+"; OFS=","} NR==3{$1=$1; fisier de printat
195.245.90.61,62.17.112.84,15426766476,1

sau pentru a păstra anteturile

$ gawk 'BEGIN{FPAT="[^ |]+"; OFS=","} NR%2{$1=$1; fisier de printat
v6_ntoa,v6_ntoa,id,client_syn_packets
195.245.90.61,62.17.112.84,15426766476,1

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.