Puncte:-3

Extragerea unui rând folosind sed

drapel bd

Mă întrebam doar cum aș extrage un anumit rând folosind sed? (Sistemul meu are sed instalat, așa că, din păcate, nu awk :( ). Am un fișier text ca următorul:

Nume companie, Descriere, Adresă, Cod poștal, E-mail, Telefon, Fax, Site web, Oraș, Latitudine, Longitudine, Cuvinte cheie, Adresă poștală, Proprietate indigenă, Regiune, Tip, Sector industrial, Anul formării, Număr de angajați, Contact principal, Contact Titlu, Twitter, Facebook, Când este actualizat
Duz Cho Construction LP, „Duz Cho Construction este o companie de construcții de lucrări de terasament care desfășoară activități de dezvoltare a șantierului, acces rutier și reabilitare pentru construcții de petrol și gaze, energie eoliană, minerit și alte lucrări civile pe teritoriul tradițional al trupei indiene McLeod Lake.”, 4821 South Access Road, V0C 1J0,[email protected],250-788-3120,250-788-3188,https://duzcho.com/duz-cho-construction/,Chetwynd,55.6963381,-121.6266668,Duz Construction LP 23 Construction,"4821 South Access Road, Chetwynd, BC V0C 1J0", TRUE,Northeast,Community Owned Company,23 Construction,2002,55 to 99,Jacob Albertson,General Manager,,https://www.facebook. com/DuzChoConstruction/,2012-04-15
Gilwa Consulting Inc., „Gilwa Consulting Inc. (GCI) este o companie deținută și operată de indigeni care oferă servicii de consultanță tuturor participanților din industria construcțiilor implicați în dezvoltarea, implementarea și/sau executarea acordurilor contractuale între popoarele indigene, industrie ( EPC, EPCM, Contractori) și/sau guvern.” 710 Ruston Road,V1X3Y2,[email protected],778-215-1888,,http://www.gilwaconsulting.com,Kelowna,49.8804877,-119.4070893, "Gilwa Consulting Inc. 54 Servicii profesionale, științifice și tehnice","710 Ruston Road, Kelowna, BC V1X 3Y2",TRUE,Thompson / Okanagan,Private Company,"54 Servicii profesionale, științifice și tehnice",2019,1 până la 4 ,Thomas Nyce,Director,,,2021-04-14
HSI Hobbs Strategic Insights, „Oferind o suită completă de planificare strategică, consultanță în afaceri, comunicare corporativă și servicii de coaching pentru succes și incluziune, HSI lucrează cu tine pentru a manifesta inițiative de transformare de la concepție până la implementare. HSI este un lider în munca de reconciliere indigenă și diversitate. & incluziune inițiative pentru entități corporative.",,V3M 0J4,[email protected],604-626-8296,,https://strategicinsights.ca,,,,"HSI Hobbs Strategic Insights 54 Servicii profesionale, științifice și tehnice" ,,TRUE,Lower Mainland / Southwest,Private Company,"54 Servicii profesionale, științifice și tehnice",2021,1 până la 4,Sasha Hobbs,Strateg principal,,,2021-04-14
Bigfoot Donuts, „Bigfoot Donuts este o brutărie și o cafenea deținută și administrată local în inima centrului orașului Courtenay. Specializată în produse artizanale, făcute de la zero, de calitate, cafea și gogoși, cu o latură de distracție.”,463 A 5th Street,V9N 1J7,[email protected],250-871-6603,,https://www.bigfootdonuts.com/,Courtenay,49.6902502,-125.0032691,Bigfoot Donuts 72 Servicii de cazare și alimentație,"463 BC, Courty 5th Street, VN Aena 1J7",TRUE,Insula și Coasta Vancouver,Companie privată,72 Servicii de cazare și alimentație,2017,5-9,Lyndsey Bell,Proprietar,,https://www.facebook.com/Bigfoot.Donuts/,2021-04- 14
Refocus Communications & Fundraising, „Refocus ajută organizațiile non-profit să-și implice mai profund comunitatea și susținătorii, astfel încât, împreună, să poată face lucruri grozave în lume.
Lucrăm cu organizații caritabile din Canada, ajutându-le să construiască programe de strângere de fonduri cu un accent pe implicare și comunicare.","20543 96 Ave., Unit 31",V1M 3W3,[email protected],778.875.3439,,http://www. .refocuscommunications.com,Langley ,49.1776159,-122.6564416,Refocus Communications & Fundraising 81 Alte servicii (cu excepția administrației publice),"20543 96 Ave., Unit 31, Langley, BC V1M 3W3",TRUE, Southwest,LowerPrivate Company ,81 Alte servicii (cu excepția administrației publice),2017,1 la 4,Aime Lindenberger,„CEO, Chief Engagement Officer”,,,2021-03-31
Turtle Island Connections, „Turtle Island Connections organizează cutii de abonament pline cu creații indigene. Cutia noastră, Turtle Shell, se concentrează pe bunăstarea noastră spirituală, mentală, emoțională și fizică. Fiecare Shell conține artă indigenă, învățături culturale, hrană, sine. -produse de îngrijire și donație către Vancouver Aboriginal Health Society.",3139 Brandt Crescent,V9L 6W6,[email protected],250.710.7685,,https://www.turtleislandconnections.ca,Duncan,48.7633914,-123.713762 Island Connections 44-45 Comerț cu amănuntul,"3139 Brandt Crescent, Duncan BC V9L 6W6",TRUE,Vancouver Island and Coast,Parteneriat,44-45 Comerț cu amănuntul,2021,1 la 4,Lindsay Myers,Co-fondator,,https: //www.facebook.com/TurtleIslandConnections,2021-03-31
Bulkley Valley Roofing Ltd,"Specializată în acoperișuri comerciale, industriale și rezidențiale. Complet certificat și asigurat pentru lucrări de acoperișuri la cald. Personal de calatori cu sigiliu roșu.","Unitatea 3-3167 Tatlow rd, ",V0J 2N0,[email protected] ,250-846-9446,250-846-9440,,Smithers,54.7698334,-127.143943,Bulkley Valley Roofing Ltd 23 Construction,"Unit 3-3167 Tatlow rd, Smithers BC V0J Development Corporation,North Coast",, 23 Construcții,2000,5 până la 9,Murray Olivier,Proprietar/operator,,,2021-03-31
North Coast Helicopters, Northcoast Helicopters oferă piloți de linie lungă cu experiență, experimentați în suportul de foraj cu diamant și zborul montan.Northcoast Helicopters oferă servicii de luptă împotriva incendiilor de vegetație diverselor agenții private și guvernamentale.,2555 Seal Cove Road unit 123,V8J 3P6,[email protected],250-631-6031,,http://www.northcoasthelicopters.com,Prince Rupert, 54.3369741,-130.3125632,"North Coast Helicopters 21 Mining, quarrying, and oil and gaz extraction","2555 Seal Cove Road unit 123, Prince Rupert BC V8J 3P6",TRUE,North Coast,Private Company,"21 Mining,Carrier, și extracție de petrol și gaze",2005,5 până la 9,Kristen,Owner,,,2021-03-31
Park West Professional Services, Call Center,"Suite 811, 100 Park Royal, Suite 200", V7T 1A2,[email protected],604-210-1483,,,West Vancouver,49.3251879,-123.1358334,"Park West Professional Services 54 Servicii profesionale, științifice și tehnice","100 Park Royal, Suite 200, West Vancouver, BC V7T 1A2",TRUE,Lower Mainland / Southwest,Private Company,"54 Servicii profesionale, științifice și tehnice",2013,10 până la 19 ,Matt Vickers,proprietar,,,2021-03-31
Afterglow Hair Lounge, „Pune-ți strălucirea. Ne străduim să oferim oaspeților noștri același serviciu individual de calitate pentru care orașele mici sunt renumite, cu stilul, talentul și profesionalismul orașului. Suntem mândri că am fost nominalizați. și a fost prezentat ca unii dintre cei mai buni stiliști de la Powell River în 2017, 2018, 2019 și 2020 și au o dedicație comună pentru a menține îmbunătățirea experiențelor clienților în anii următori. Nu căutați mai departe cei mai buni stilisti de nuntă din partea superioară a Sunshine Coasta disponibilă pe tot parcursul anului pentru evenimente în salon*, șapte zile pe săptămână.Vino să experimentezi AfterGlow.” 7075 Alberni Street,V8A2C2,[email protected],604.485.2075,, http://www.afterglowhairlounge.com,Powell River,49.8468725,-124.5196439,Afterglow Hair Lounge (Alte servicii publice) administrație),,TRUE,Vancouver Island and Coast,Private Company,81 Alte servicii (cu excepția administrației publice),2011,5 până la 9,Holly Barnes,Owner/operator,https://twitter.com/afterglowhair,https:// www.facebook.com/AfterGlowHairLounge,2021-03-10
Dawson Analytics Inc., „Dawson Analytics este o companie de consultanță specializată în dezvoltarea și designul cercetării, analiza și interpretarea datelor și evaluarea programelor/politicii. Compania noastră sursă și analizează date pentru a oferi clienților noștri perspective puternice asupra proceselor, rezultatelor și viitorului lor. eforturi.",22839 Gilbert Drive,V4R 0G4,[email protected],604.961.5129,,http://www.dawsonanalytics.com,Maple Ridge,49.2512469,-122.5874728,Dawson Information and Analytics cultural industrie5,Dawson Information and Analytics Inc. „22839 Gilbert Drive, Maple Ridge, BC V4R 0G4”, TRUE, Lower Mainland / Southwest, Private Company,51 Informații și industrii culturale,2021,1 până la 4,Stephanie Johnston,vicepreședinte,,,2021-03-10

Deci, practic, vreau ceva ca utilizatorul să ofere trei informații: $1, care este numele fișierului $2 care este modelul $3, care este anul în care a fost actualizat

Practic, ceea ce vreau să fac este să găsesc toate înregistrările care au un nume de companie: prima coloană care se potrivește cu modelul și dintre acele intrări le vreau doar pe cele care se potrivesc cu anul specific specificat de $3. De asemenea, vreau următoarele coloane din cele care se potrivesc: Numele companiei, Descrierea, Adresa și Când este actualizat. Sunt cam blocat pentru că atunci când am încercat să extrag prima coloană cu un parametru nu funcționează??:

sed -E 's/([^,]*),'"$2"'/\1/' "$1"

nu filtreaza nimic??

pLumo avatar
drapel in
Care Ubuntu nu vine cu `awk` preinstalat?
drapel hr
@pLumo ar trebui să începem să marchem aceste întrebări „manipularea CSV cu sed” ca OT din acest motiv? a avut loc recent un focar de ei atât aici, cât și pe U&L ex. [Unix - Legat de comandă Sed](https://unix.stackexchange.com/questions/654757/unix-sed-command-related)
Yunfei Chen avatar
drapel bd
@steeldriver nu ar avea mai mult sens să-l marchezi ca Întrebări frecvente?
HuHa avatar
drapel es
@pLumo: Profesorul lui CS care i-a dat asta ca temă pentru acasă.
Puncte:4
drapel in

sed sau awk sunt ambele instrumente greșite.


Fișierul dvs. este un fișier cu valori separate prin virgulă (CSV), așa că cel mai bine este să utilizați un fișier adecvat csv analizator:

csvgrep -c „Numele companiei” -m „$2” -c „Când este actualizat” -m „$3” „$1”

Instalați prin:

sudo apt install csvkit

Întrucât câmpurile pe care doriți să le filtrați se întâmplă să fie primul și ultimul, ați putea utiliza grep, awk sau sed:

awk -F, -v name_pattern="$2" -v year="$3" '$1~name_pattern && $NF~year' "$1"

sau

sed -nE "/[^,]*$2.*$3-[0-9]{2}-[0-9]{2}\$/p" "$1"

sau

grep -P "^[^,]*$2.*$3-[0-9]{2}-[0-9]{2}\$" "$1"

Cu toate acestea, rețineți că aceste soluții sunt foarte fragile și funcționează doar pentru exemplul dvs. simplu. De exemplu. dacă unul dintre numele dvs. de afaceri ar avea o virgulă, nu ar funcționa:

„Bla, Bla și fiii”

La fel, dacă doriți să filtrați pe baza altor câmpuri.


Un cuvenit csv analizatorul ar trebui să fie întotdeauna preferat!

Yunfei Chen avatar
drapel bd
Dacă trebuie să îl instalați, nu îl face portabil?
drapel hr
+1 nu doar preferat, esențial în cazul OP, deoarece cel puțin „Adresa de corespondență” și „Descrierea” conțin virgule încorporate și/sau ghilimele duble, ex. „[...] unii dintre stiliștii „„Best of Powell River”” în 2017, 2018, 2019 și 2020 [...]`
Puncte:0
drapel in

În mod implicit, sed nu filtrează, editează și apoi tipărește rezultatul, cu sau fără vreo acțiune de editare.

Dacă doriți să filtreze, atunci utilizați -n opțiunea de a-i spune să nu imprime linii după ce le-a editat. Apoi, te aliniază do doriți să imprimați, puneți un operator p. De exemplu:

sed -nE 's/match string/inlocuire string/p'

Apoi vor fi tipărite numai lucrurile care se potrivesc și care sunt editate cu succes.

Dar, de asemenea, realizați, orice pe o linie potrivită care nu este potrivit de șirul de potrivire va fi trecut intact și imprimat. Deci, dacă doriți să imprimați doar unele părți ale liniei, șirul dvs. de potrivire trebuie să se potrivească cu întreaga linie, iar apoi șirul de înlocuire pune înapoi doar părțile pe care doriți să le imprimați (cu excepția cazului în care, desigur, doriți să imprimați părți nepotrivite).

pLumo avatar
drapel in
`sed` poate filtra foarte bine liniile.
pLumo avatar
drapel in
Dar arată substituția în loc de simplu `/pattern/p`.
user10489 avatar
drapel in
Nu am spus că sed nu filtrează. Am spus că nu filtrează *în mod implicit*... și dacă vrei să filtrezi fără a edita, grep este drăguț.

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.