Score:-3

แยกแถวโดยใช้ sed

ธง bd

ฉันแค่สงสัยว่าฉันจะแยกแถวเฉพาะโดยใช้ sed ได้อย่างไร (ระบบของฉันติดตั้ง sed แล้ว ดังนั้นจึงไม่มี awk :( ) ฉันได้รับไฟล์ข้อความดังต่อไปนี้:

ชื่อธุรกิจ คำอธิบาย ที่อยู่ รหัสไปรษณีย์ อีเมล โทรศัพท์ โทรสาร เว็บไซต์ เมือง ละติจูด ลองจิจูด คำสำคัญ ที่อยู่ทางไปรษณีย์ กรรมสิทธิ์ในประเทศ ภูมิภาค ประเภท ภาคอุตสาหกรรม ปีที่ก่อตั้ง จำนวนพนักงาน ผู้ติดต่อหลัก ชื่อผู้ติดต่อ,Twitter,Facebook,เมื่ออัปเดต
Duz Cho Construction LP,"Duz Cho Construction เป็นบริษัทก่อสร้างงานดินที่ทำการพัฒนาพื้นที่ การเข้าถึงถนน และการถมทะเลสำหรับน้ำมันและก๊าซ พลังงานลม เหมืองแร่ และการก่อสร้างงานโยธาอื่นๆ ภายในอาณาเขตดั้งเดิมของ McLeod Lake Indian Band" 4821 South Access Road,V0C 1J0,[email protected],250-788-3120,250-788-3188,https://duzcho.com/duz-cho-construction/,Chetwynd,55.6963381,-121.6266684,Duz Cho Construction LP 23 Construction,"4821 South Access Road, Chetwynd, BC V0C 1J0",TRUE,ภาคตะวันออกเฉียงเหนือ,บริษัทที่เป็นเจ้าของโดยชุมชน,23 Construction,2002,55 ถึง 99,Jacob Albertson,ผู้จัดการทั่วไป,,https://www.facebook. com/DuzChoConstruction/,2012-04-15
Gilwa Consulting Inc.,"Gilwa Consulting Inc. (GCI) เป็นธุรกิจที่มีเจ้าของและดำเนินการโดยชนพื้นเมืองที่ให้บริการให้คำปรึกษาแก่ผู้เข้าร่วมทั้งหมดในอุตสาหกรรมการก่อสร้างที่มีส่วนร่วมในการพัฒนา ดำเนินการ และ/หรือดำเนินการตามข้อตกลงตามสัญญาระหว่างชนเผ่าพื้นเมือง อุตสาหกรรม ( EPC, EPCM, ผู้รับเหมา) และ/หรือรัฐบาล",710 Ruston Road,V1X3Y2,[email protected],778-215-1888,,http://www.gilwaconsulting.com,Kelowna,49.8804877,-119.4070893, "Gilwa Consulting Inc. 54 บริการระดับมืออาชีพ วิทยาศาสตร์และเทคนิค","710 Ruston Road, Kelowna, BC V1X 3Y2",TRUE,Thompson / Okanagan,Private Company,"54 Professional บริการทางวิทยาศาสตร์และทางเทคนิค",2019,1 ถึง 4 ,โธมัส ไนซ์,ผู้อำนวยการ ,,,2021-04-14
HSI Hobbs Strategic Insights "เสนอแผนเชิงกลยุทธ์เต็มรูปแบบ การให้คำปรึกษาทางธุรกิจ การสื่อสารองค์กร และบริการฝึกสอนเพื่อความสำเร็จและการมีส่วนร่วม HSI ทำงานร่วมกับคุณเพื่อแสดงความคิดริเริ่มในการเปลี่ยนแปลงตั้งแต่แนวคิดไปจนถึงการนำไปปฏิบัติ HSI เป็นผู้นำในงานปรองดองของชนพื้นเมืองและความหลากหลาย & ความคิดริเริ่มการรวมสำหรับองค์กร",,V3M 0J4,[email protected],604-626-8296,,https://strategicinsights.ca,,,,"HSI Hobbs Strategic Insights 54 บริการระดับมืออาชีพ วิทยาศาสตร์ และเทคนิค" ,,TRUE,Lower Mainland / Southwest,Private Company,"54 Professional,scientific services",2021,1 to 4,Sasha Hobbs,Principal Strategist,,,2021-04-14
Bigfoot Donuts,"Bigfoot Donuts เป็นร้านเบเกอรี่และคาเฟ่ที่บริหารและดำเนินการโดยคนในท้องถิ่น ใจกลางย่าน Downtown Courtenay เชี่ยวชาญด้านงานฝีมือ ทำตั้งแต่เริ่มต้น คุณภาพ กาแฟและโดนัท พร้อมความสนุก",463 A 5th Street,V9N 1J7,[email protected],250-871-6603,,https://www.bigfootdonuts.com/,Courtenay,49.6902502,-125.0032691,Bigfoot Donuts 72 ที่พักและบริการอาหาร"463 A 5th Street, Courtenay BC V9N 1J7",TRUE,Vancouver Island and Coast,Private Company,72 ที่พักและบริการอาหาร,2017,5 ถึง 9,Lyndsey Bell,Owner,,https://www.facebook.com/Bigfoot.Donuts/,2021-04- 14
การสื่อสารและการระดมทุนของ Refocus "Refocus ช่วยให้องค์กรไม่แสวงหาผลกำไรมีส่วนร่วมกับชุมชนและผู้สนับสนุนอย่างลึกซึ้งมากขึ้น เพื่อให้พวกเขาสามารถทำสิ่งที่ยิ่งใหญ่ร่วมกันในโลกได้
เราทำงานร่วมกับองค์กรการกุศลทั่วแคนาดา ช่วยสร้างโครงการระดมทุนโดยมุ่งเน้นการมีส่วนร่วมและการสื่อสาร","20543 96 Ave., Unit 31",V1M 3W3,[email protected],778.875.3439,,http://www .refocuscommunications.com,Langley ,49.1776159,-122.6564416,Refocus Communications & Fundrising 81 บริการอื่นๆ (ยกเว้นการบริหารราชการ),"20543 96 Ave., Unit 31, Langley, BC V1M 3W3",TRUE,Lower Mainland / Southwest,Private Company ,81 บริการอื่นๆ (ยกเว้นการบริหารราชการ),2017,1 ถึง 4,Aime Lindenberger,"CEO, Chief Engagement Officer",,2021-03-31
Turtle Island Connections"Turtle Island Connections คัดสรรกล่องการสมัครสมาชิกที่เต็มไปด้วยผลงานสร้างสรรค์ของชนพื้นเมือง กล่อง Turtle Shell ของเรามุ่งเน้นไปที่จิตวิญญาณ จิตใจ อารมณ์ และความเป็นอยู่ที่ดีของร่างกาย แต่ละเปลือกหอยประกอบด้วยศิลปะพื้นเมือง คำสอนทางวัฒนธรรม การบำรุงเลี้ยง ตัวตน -ผลิตภัณฑ์ดูแลและการบริจาคให้กับ Vancouver Aboriginal Health Society",3139 Brandt Crescent,V9L 6W6,[email protected],250.710.7685,,https://www.turtleislandconnections.ca,Duncan,48.7633914,-123.7137629,Turtle Island Connections 44-45 การค้าปลีก,"3139 Brandt Crescent, Duncan BC V9L 6W6",TRUE,Vancouver Island and Coast,Partnership,44-45 การค้าปลีก,2021,1 ถึง 4,Lindsay Myers,Co-Founder,,https: //www.facebook.com/TurtleIslandConnections,2021-03-31
Bulkley Valley Roofing Ltd,"ผู้เชี่ยวชาญด้านหลังคาเพื่อการพาณิชย์ อุตสาหกรรม และที่พักอาศัย ได้รับการรับรองและรับประกันงานหลังคาร้อนอย่างครบถ้วน มีเจ้าหน้าที่ Red-seal Journeymen","Unit 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 2N0",TRUE,North Coast,Development Corporation, 23 การก่อสร้าง,2000,5 ถึง 9,Murray Olivier,เจ้าของ/ผู้ดำเนินการ,,,2021-03-31
North Coast Helicopters, Northcoast Helicopters ให้บริการนักบินแนวยาวที่มีประสบการณ์ซึ่งช่ำชองในการสนับสนุนการเจาะเพชรและการบินบนภูเขาNorthcoast Helicopters ให้บริการดับไฟป่าแก่หน่วยงานภาครัฐและเอกชนต่างๆ,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, oil and gas extracting","2555 Seal Cove Road unit 123, Prince Rupert BC V8J 3P6",TRUE,North Coast,Private Company,"21 Mining, quarrying, และการสกัดน้ำมันและก๊าซ",2005,5 ถึง 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 บริการระดับมืออาชีพ วิทยาศาสตร์และเทคนิค","100 Park Royal, Suite 200, West Vancouver, BC V7T 1A2",TRUE,Lower Mainland / Southwest,Private Company,"54 Professional บริการทางวิทยาศาสตร์และทางเทคนิค",2013,10 ถึง 19 ,แมตต์ วิคเกอร์,เจ้าของ,,,2021-03-31
Afterglow Hair Lounge"เปล่งประกาย เรามุ่งมั่นที่จะให้บริการแบบตัวต่อตัวที่มีคุณภาพเทียบเท่ากับเมืองเล็กๆ ที่มีชื่อเสียง ด้วยสไตล์ ความสามารถ และความเป็นมืออาชีพของเมือง เราภูมิใจที่ได้รับการเสนอชื่อ และเป็นสไตลิสต์ของ "Best of Powell River" ในปี 2017, 2018, 2019 และ 2020 และมีความทุ่มเทร่วมกันเพื่อรักษาประสบการณ์ของลูกค้าให้ดีขึ้นในปีต่อๆ ไป ไม่ต้องมองหาที่ไหนอีกแล้วสำหรับสไตลิสต์งานแต่งงานที่ดีที่สุดของ Upper Sunshine Coast ใช้ได้ตลอดทั้งปีสำหรับกิจกรรมในร้านเสริมสวย* เจ็ดวันต่อสัปดาห์มาสัมผัส AfterGlow",7075 Alberni Street,V8A2C2,[email protected],604.485.2075,, http://www.afterglowhairlounge.com,Powell River,49.8468725,-124.5196439,Afterglow Hair Lounge 81 บริการอื่นๆ (ยกเว้นสาธารณะ การบริหาร),,TRUE,เกาะแวนคูเวอร์และชายฝั่ง,บริษัทเอกชน,81 บริการอื่นๆ (ยกเว้นการบริหารราชการ),2011,5 ถึง 9,Holly Barnes,Owner/operator,https://twitter.com/afterglowhair,https:// www.facebook.com/AfterGlowHairLounge,2021-03-10
Dawson Analytics Inc.,"Dawson Analytics เป็นบริษัทที่ปรึกษาที่เชี่ยวชาญด้านการพัฒนาและออกแบบการวิจัย การวิเคราะห์และตีความข้อมูล และการประเมินโปรแกรม/นโยบาย บริษัทของเราจัดหาและวิเคราะห์ข้อมูลเพื่อให้ลูกค้าของเราได้รับข้อมูลเชิงลึกที่มีประสิทธิภาพเกี่ยวกับกระบวนการ ผลลัพธ์ และอนาคตของพวกเขา ความพยายาม",22839 Gilbert Drive,V4R 0G4,[email protected],604.961.5129,,http://www.dawsonanalytics.com,Maple Ridge,49.2512469,-122.5874728,Dawson Analytics Inc. 51 อุตสาหกรรมข้อมูลและวัฒนธรรม "22839 Gilbert Drive, Maple Ridge, BC V4R 0G4",TRUE,แผ่นดินใหญ่ตอนล่าง / ตะวันตกเฉียงใต้,บริษัทเอกชน,51 อุตสาหกรรมข้อมูลและวัฒนธรรม,2021,1 ถึง 4,Stephanie Johnston,Vice President,,,2021-03-10

โดยพื้นฐานแล้วฉันต้องการบางอย่างเช่นผู้ใช้จะให้ข้อมูลสามอย่าง: $1 ซึ่งเป็นชื่อไฟล์ $2 ซึ่งเป็นรูปแบบ $3 ซึ่งเป็นปีที่มีการปรับปรุง

โดยพื้นฐานแล้ว สิ่งที่ฉันต้องการทำคือค้นหารายการทั้งหมดที่มีชื่อธุรกิจ: คอลัมน์แรกที่ตรงกับรูปแบบและรายการเหล่านั้น ฉันต้องการเพียงรายการเดียวที่ตรงกับปีที่ระบุโดย $3 นอกจากนี้ฉันต้องการคอลัมน์ต่อไปนี้จากคอลัมน์ที่ตรงกัน: ชื่อธุรกิจ คำอธิบาย ที่อยู่ และเมื่ออัปเดต ฉันติดอยู่เพราะเมื่อฉันพยายามแยกคอลัมน์แรกด้วยพารามิเตอร์มันใช้งานไม่ได้ ??:

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

ไม่กรองอะไรเลย??

pLumo avatar
in flag
Ubuntu ใดที่ไม่ได้ติดตั้ง `awk` ไว้ล่วงหน้า
hr flag
@pLumo เราควรเริ่มทำเครื่องหมายคำถาม "จัดการ CSV ด้วย sed" เหล่านี้เป็น OT ด้วยเหตุผลนั้นหรือไม่ มีการระบาดของพวกเขาเมื่อเร็ว ๆ นี้ทั้งที่นี่และบน U&L เช่น [Unix - คำสั่งที่เกี่ยวข้องกับ Sed](https://unix.stackexchange.com/questions/654757/unix-sed-command-related)
Yunfei Chen avatar
bd flag
@steeldriver จะดีกว่าไหมที่จะทำเครื่องหมายว่าเป็นคำถามที่พบบ่อย??
HuHa avatar
es flag
@pLumo: ศาสตราจารย์ด้านวิทยาการคอมพิวเตอร์เป็นผู้มอบสิ่งนี้ให้เขาเป็นการบ้าน
Score:4
ธง in

เสด หรือ อึดอัด เป็นเครื่องมือที่ไม่ถูกต้องทั้งคู่


ไฟล์ของคุณเป็นไฟล์ Comma Separated Values ​​(CSV) ดังนั้นจึงควรใช้ไฟล์ที่เหมาะสม csv แยกวิเคราะห์:

csvgrep -c "ชื่อธุรกิจ" -m "$2" -c "เมื่ออัปเดต" -m "$3" "$1"

ติดตั้งผ่าน:

sudo apt ติดตั้ง csvkit

เนื่องจากฟิลด์ที่คุณต้องการกรองเป็นฟิลด์แรกและฟิลด์สุดท้าย คุณจึงอาจใช้ เกรป, อึดอัด หรือ เสด:

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

หรือ

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

หรือ

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

อย่างไรก็ตาม โปรดทราบว่าวิธีแก้ปัญหาเหล่านี้เปราะบางมากและใช้ได้กับตัวอย่างง่ายๆ ของคุณเท่านั้น เช่น. หากชื่อธุรกิจของคุณมีเครื่องหมายจุลภาค จะไม่ทำงาน:

"บลา บลา และลูกชาย"

เหมือนกัน ถ้าคุณต้องการกรองตามฟิลด์อื่น


ที่เหมาะสม csv ควรใช้โปรแกรมแยกวิเคราะห์เสมอ!

Yunfei Chen avatar
bd flag
หากคุณจำเป็นต้องติดตั้งมันไม่ได้ทำให้พกพาไม่ได้??
hr flag
+1 ไม่ใช่แค่ต้องการ +1 จำเป็นในกรณีของ OP เนื่องจากอย่างน้อย `ที่อยู่ทางไปรษณีย์` และ `คำอธิบาย` มีเครื่องหมายจุลภาคฝังอยู่และ/หรือเครื่องหมายคำพูดคู่ยกเว้น เช่น `[...] สไตลิสต์ "Best of Powell River" บางส่วนในปี 2017, 2018, 2019 และ 2020 [...]`
Score:0
ธง in

ตามค่าเริ่มต้น sed จะไม่กรอง แต่จะแก้ไขแล้วพิมพ์ผลลัพธ์โดยมีหรือไม่มีการดำเนินการแก้ไขใดๆ

หากต้องการกรองให้ใช้ -น ตัวเลือกเพื่อบอกให้ไม่พิมพ์บรรทัดหลังจากแก้ไข จากนั้นไลน์คุณ ทำ ต้องการพิมพ์ คุณใส่ตัวดำเนินการ p ตัวอย่างเช่น:

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

จากนั้นจะพิมพ์เฉพาะสิ่งที่ตรงกันและแก้ไขสำเร็จเท่านั้น

แต่โปรดทราบด้วยว่า อะไรก็ตามในบรรทัดที่ตรงกันซึ่งไม่ตรงกับสตริงการจับคู่จะถูกส่งผ่านและพิมพ์ออกมาโดยไม่เสียหาย ดังนั้น หากคุณต้องการพิมพ์เฉพาะบางส่วนของบรรทัด สตริงการจับคู่ของคุณต้องตรงกันทั้งบรรทัด จากนั้นสตริงแทนที่จะใส่กลับเฉพาะส่วนที่คุณต้องการพิมพ์ (เว้นแต่คุณต้องการพิมพ์ส่วนที่ไม่ตรงกัน)

pLumo avatar
in flag
`sed` สามารถกรองบรรทัดได้เป็นอย่างดี
pLumo avatar
in flag
แต่มันแสดงการแทนที่แทนเพียงแค่ `/pattern/p`
user10489 avatar
in flag
ฉันไม่ได้บอกว่า sed ไม่กรอง ฉันบอกว่ามันไม่กรอง *โดยค่าเริ่มต้น* ... และถ้าคุณต้องการกรองโดยไม่แก้ไข grep ก็ดีนะ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา