คำถามติดแท็ก csv

ไฟล์ที่มีข้อมูลจัดเรียงในตารางโดยมักจะใช้เครื่องหมายจุลภาค (ดังนั้นค่าที่คั่นด้วยจุลภาค) เพื่อแยกคอลัมน์ แถวจะถูกคั่นด้วยการขึ้นบรรทัดใหม่ (แต่ไม่ใช่บรรทัดใหม่ทั้งหมดที่เป็นตัวคั่นแถวเนื่องจากช่องสามารถยกมาเพื่อให้มีบรรทัดใหม่ของตัวคั่นได้ใช้แท็กนี้สำหรับข้อมูล CSV แบบเต็มไม่ใช่กรณีที่ง่ายกว่าของหนึ่งเรคคอร์ดต่อบรรทัดหรือไม่ใส่เครื่องหมายคำพูดทั้งหมด (ใช้ csv-simple สำหรับข้อมูลประเภทนั้น)

6
การใช้ jq เพื่อแยกค่าและรูปแบบใน CSV
ฉันมีไฟล์ JSON ด้านล่าง: { "data": [ { "displayName": "First Name", "rank": 1, "value": "VALUE" }, { "displayName": "Last Name", "rank": 2, "value": "VALUE" }, { "displayName": "Position", "rank": 3, "value": "VALUE" }, { "displayName": "Company Name", "rank": 4, "value": "VALUE" }, { "displayName": "Country", "rank": 5, "value": "VALUE" }, ] …
57 bash  python  csv  json  jq 

19
มีเครื่องมือบรรทัดคำสั่งที่แข็งแกร่งสำหรับการประมวลผลไฟล์ csv หรือไม่?
ฉันทำงานกับไฟล์ CSV และบางครั้งจำเป็นต้องตรวจสอบเนื้อหาของแถวหรือคอลัมน์อย่างรวดเร็วจากบรรทัดคำสั่ง ในหลายกรณีcut, head, tailและเพื่อน ๆ จะทำผลงานได้; อย่างไรก็ตามการตัดไม่สามารถจัดการกับสถานการณ์เช่น "this, is the first entry", this is the second, 34.5 ที่นี่เครื่องหมายจุลภาคแรกเป็นส่วนหนึ่งของสนามแรก แต่cut -d, -f1ไม่เห็นด้วย ก่อนที่ฉันจะเขียนวิธีแก้ปัญหาด้วยตัวเองฉันก็สงสัยว่าถ้าใครรู้จักเครื่องมือที่ดีที่มีอยู่แล้วสำหรับงานนี้ อย่างน้อยที่สุดก็ต้องสามารถจัดการกับตัวอย่างด้านบนและส่งคืนคอลัมน์จากไฟล์ที่จัดรูปแบบ CSV คุณสมบัติที่ต้องการอื่น ๆ รวมถึงความสามารถในการเลือกคอลัมน์ตามชื่อคอลัมน์ที่กำหนดในแถวแรกการสนับสนุนรูปแบบการอ้างอิงอื่น ๆ และการสนับสนุนสำหรับไฟล์ที่คั่นด้วยแท็บ หากคุณไม่รู้จักเครื่องมือดังกล่าว แต่มีข้อเสนอแนะเกี่ยวกับการใช้โปรแกรมดังกล่าวใน Bash, Perl หรือ Python หรือภาษาสคริปต์ทั่วไปอื่น ๆ ฉันจะไม่สนใจคำแนะนำดังกล่าว

6
คำสั่งไปยังแท็บเค้าโครงรายการแยกกันอย่าง
บางครั้งฉันได้รับเป็นรายการคั่นแท็บป้อนข้อมูลซึ่งไม่ได้จัดแนวค่อนข้างเช่น var1 var2 var3 var_with_long_name_which_ruins_alignment var2 var3 มีวิธีง่าย ๆ ในการเรนเดอร์แบบเรียงซ้อนหรือไม่? var1 var2 var3 var_with_long_name_which_ruins_alignment var2 var3

2
เข้าร่วมหลายคำสั่ง sed ในหนึ่งสคริปต์เพื่อประมวลผลไฟล์ CSV
มีไฟล์ CSV ดังนี้: HEADER "first, column"|"second "some random quotes" column"|"third ol' column" FOOTER และมองหาผลลัพธ์เช่น: HEADER first, column|second "some random quotes" column|third ol' column กล่าวอีกนัยหนึ่งคือการลบ "FOOTER" เครื่องหมายคำพูดในจุดเริ่มต้นจุดสิ้นสุดและรอบ ๆ | จนถึงตอนนี้รหัสนี้ทำงาน: sed '/FOOTER/d' csv > csv1 | #remove FOOTER sed 's/^\"//' csv1 > csv2 | #remove quote at the beginning sed 's/\"$//' …
34 sed  csv 

4
แปลงไฟล์. xlsx (MS Excel) เป็น. csv บนบรรทัดคำสั่งด้วยฟิลด์ที่คั่นด้วยเครื่องหมายอัฒภาค
ฉันรู้ว่านี่ไม่ใช่คำถามที่เกี่ยวข้องกับ unix / linux ทั้งหมด แต่เนื่องจากนี่คือสิ่งที่ฉันจะทำบน linux ฉันหวังว่าบางคนจะมีคำตอบ ฉันมีไฟล์ excel ออนไลน์ ( .xlsx) ซึ่งได้รับการปรับปรุงเป็นระยะ (โดยคนอื่น) ฉันต้องการเขียนสคริปต์และวางเป็น cronjob เพื่อประมวลผล excel แผ่นงาน แต่การทำเช่นนั้นฉันต้องแปลงมันเป็นไฟล์ข้อความ (ดังนั้นก.csv) ด้วยคอลัมน์คั่นด้วยเครื่องหมายอัฒภาค ไม่สามารถคั่นด้วยเครื่องหมายจุลภาคได้เนื่องจากมีบางคอลัมน์อยู่ในเครื่องหมายจุลภาค เป็นไปได้ไหมที่จะทำการแปลงนี้จากเชลล์? ฉันติดตั้ง Open office แล้วและฉันสามารถทำได้โดยใช้ GUI แต่ต้องการทราบว่าเป็นไปได้ไหมที่จะทำสิ่งนี้จากบรรทัดคำสั่ง ขอบคุณ! PS: ฉันมีเครื่อง Mac เช่นกันดังนั้นหากวิธีแก้ปัญหาบางอย่างสามารถทำงานได้ที่นั่นก็ดีเช่นกัน :)

5
วิธีจัดการไฟล์ CSV ด้วย sed หรือ awk?
ฉันจะทำสิ่งต่อไปนี้กับไฟล์ CSV โดยใช้sedหรือawk? ลบคอลัมน์ ทำซ้ำคอลัมน์ ย้ายคอลัมน์ ฉันมีโต๊ะใหญ่กว่า 200 sedแถวและฉันไม่ว่าคุ้นเคยกับ
23 sed  awk  csv 

7
ลบเครื่องหมายจุลภาคระหว่างเครื่องหมายคำพูดเฉพาะในไฟล์ที่คั่นด้วยเครื่องหมายจุลภาค
ฉันมีไฟล์อินพุตคั่นด้วยเครื่องหมายจุลภาค ( ,) มีบางฟิลด์อยู่ในเครื่องหมายคำพูดคู่ที่มีเครื่องหมายจุลภาคอยู่ นี่คือแถวตัวอย่าง 123,"ABC, DEV 23",345,534.202,NAME ฉันต้องลบเครื่องหมายจุลภาคทั้งหมดที่เกิดขึ้นภายในเครื่องหมายคำพูดคู่และเครื่องหมายคำพูดคู่ด้วย ดังนั้นบรรทัดข้างต้นควรได้รับการแยกวิเคราะห์ตามที่แสดงด้านล่าง 123,ABC DEV 23,345,534.202,NAME ฉันลองใช้สิ่งต่อไปนี้sedแต่ไม่ให้ผลลัพธ์ที่คาดหวัง sed -e 's/\(".*\),\(".*\)/\1 \2/g' เทคนิคใด ๆ อย่างรวดเร็วด้วยsed, awkหรือยูทิลิตี้ยูนิกซ์อื่นใดโปรด?
23 text-processing  sed  awk  csv 

6
สเปรดชีตที่เป็นมิตรของบรรทัดคำสั่ง
สิ่งนั้นมีอยู่จริงหรือไม่? สเปรดชีตแบบข้อความที่แสดงได้ดีในสภาพแวดล้อม CLI ฉันรู้ว่าฉันสามารถทำได้cat foobar.csvและทำตามที่ฉันต้องการ แต่มันไม่ได้เป็นประโยชน์หรือน่าสนใจโดยเฉพาะ ฉันไม่สามารถจินตนาการได้ว่ามันยากที่จะจัดรูปแบบตารางและอาจปฏิบัติตามกฎบางอย่าง (คณิตศาสตร์?) เช่นกัน Emacs มีการorg-modeจัดการตารางข้อความที่ค่อนข้างดีและช่วยให้การส่งออกไปยังหลายรูปแบบ อย่างไรก็ตามต้องใช้ Emacs! สิ่งใดในฐานะผู้ใช้ที่เป็นกลุ่มฉันต้องการหลีกเลี่ยง

3
กรองไฟล์. CSV ตามค่าคอลัมน์ที่ 5 ของไฟล์และพิมพ์บันทึกเหล่านั้นลงในไฟล์ใหม่
ฉันมีไฟล์. CSV ซึ่งมีรูปแบบด้านล่าง: "column 1","column 2","column 3","column 4","column 5","column 6","column 7","column 8","column 9","column 10 "12310","42324564756","a simple string with a , comma","string with or, without commas","string 1","USD","12","70%","08/01/2013","" "23455","12312255564","string, with, multiple, commas","string with or, without commas","string 2","USD","433","70%","07/15/2013","" "23525","74535243123","string , with commas, and - hypens and: semicolans","string with or, without commas","string 1","CAND","744","70%","05/06/2013","" "46476","15467534544","lengthy …
16 linux  sed  awk  csv  filter 

5
มีโปรแกรมอรรถประโยชน์บรรทัดคำสั่งเพื่อแปลงไฟล์ csv หรือไม่?
รับไฟล์แบบนี้ First,Last,Age Cory,Klein,27 John Jacob,Smith,30 มียูทิลิตีบรรทัดคำสั่งเพื่อย้ายเนื้อหาเพื่อให้ผลลัพธ์เป็นเช่นนั้นหรือไม่ First,Cory,John Jacob Last,Klein,Smith Age,27,30

8
เปลี่ยนบรรทัดแยกเป็นรายการคั่นด้วยเครื่องหมายจุลภาคด้วยรายการที่ยกมา
ฉันมีข้อมูลต่อไปนี้ (รายการแพ็กเกจ R แยกวิเคราะห์จากไฟล์ Rmarkdown) ที่ฉันต้องการเปลี่ยนเป็นรายการที่ฉันสามารถส่งไปยัง R เพื่อติดตั้ง: d3heatmap data.table ggplot2 htmltools htmlwidgets metricsgraphics networkD3 plotly reshape2 scales stringr ฉันต้องการเปลี่ยนรายการเป็นรายการของแบบฟอร์ม: 'd3heatmap', 'data.table', 'ggplot2', 'htmltools', 'htmlwidgets', 'metricsgraphics', 'networkD3', 'plotly', 'reshape2', 'scales', 'stringr' ขณะนี้ฉันมีไพพ์ไลน์ที่ไปจากไฟล์ raw ไปยังรายการด้านบน: grep 'library(' Presentation.Rmd \ | grep -v '#' \ | cut -f2 -d\( \ | tr …
15 linux  sed  csv  tr 

5
ฉันจะนับจำนวนบรรทัดในไฟล์หลังจาก grep ตรงกันได้อย่างไร
ฉันพยายามนับจำนวนบรรทัดหลังจากแถวที่มีปัญหาในไฟล์ csv ฉันรู้ว่าฉันสามารถใช้grep -a #ไวยากรณ์เพื่อส่งออก # จำนวนบรรทัดหลังจากพบการแข่งขัน ฉันสนใจเฉพาะจำนวนบรรทัดที่แท้จริงเท่านั้น ฉันรู้ว่าฉันสามารถตั้งค่าจำนวนเป็น MAX_INT แล้วไพพ์ลงในไฟล์และทำการประมวลผลเพิ่มเติม ฉันกำลังมองหาหนึ่งซับที่สั้นกระชับที่เพิ่งบอกฉันนับ ข้อเสนอแนะใด ๆ
14 files  grep  csv 

4
แยกข้อมูลจากไฟล์และวางในไฟล์ที่แตกต่างกันตามค่าของคอลัมน์หนึ่งคอลัมน์
เราจะสร้างไฟล์ csv โดยมีค่าต่ำกว่า yp1234,577,1,3 yp5678,577,3,5 yp9012,132,8,9 ฉันต้องการแยกข้อมูลและสร้างไฟล์ตามคอลัมน์ที่สอง หากเป็น 577 จะต้องแยกทั้งบรรทัดและวางในไฟล์แยกต่างหาก ฉันหมายถึงฉันต้องการไฟล์ที่มีบรรทัดที่มีคอลัมน์ที่สองเป็น 577 อยู่คนเดียวและอีกไฟล์ที่มีคอลัมน์ที่สองเป็น 132 คนเดียว ฉันลองใช้ IF แต่ไม่ได้ผล
14 csv  split 


4
เลือกบรรทัดจากไฟล์ข้อความที่มีรหัสอยู่ในไฟล์อื่น
ฉันใช้ grep awk sort ในเชลล์ unix จำนวนมากเพื่อทำงานกับไฟล์ข้อความคอลัมน์แบบแยกแท็บขนาดกลาง (ประมาณ 10M-100M) ในแง่นี้ยูนิกซ์เชลล์คือสเปรดชีตของฉัน แต่ฉันมีปัญหาใหญ่หนึ่งอย่างนั่นคือการเลือกระเบียนที่ระบุรายการรหัส มีtable.csvไฟล์ที่มีรูปแบบid\tfoo\tbar...และids.csvไฟล์ที่มีรายชื่อของรหัสเพียงเลือกระเบียนจากtable.csvที่มี ID ids.csvอยู่ใน ชนิดของ/programming/13732295/extract-all-lines-from-text-file-based-on-a-given-list-of-idsแต่มีเชลล์ไม่ใช่ perl grep -Fเห็นได้ชัดว่าสร้างผลบวกที่ผิดพลาดถ้ารหัสเป็นความกว้างของตัวแปร joinเป็นเครื่องมือที่ฉันไม่สามารถหาได้ ก่อนอื่นก็ต้องเรียงลำดับตัวอักษร (ไฟล์ของฉันมักจะเรียงลำดับตัวเลข) แต่ถึงอย่างนั้นฉันก็ไม่สามารถทำงานได้โดยไม่บ่นเกี่ยวกับลำดับที่ไม่ถูกต้องและข้ามบางระเบียน ดังนั้นฉันไม่ชอบมัน grep -f เทียบกับไฟล์ที่มี^id\t-s ช้ามากเมื่อจำนวนรหัสมีขนาดใหญ่ awkยุ่งยาก มีวิธีแก้ปัญหาที่ดีสำหรับเรื่องนี้หรือไม่? มีเครื่องมือเฉพาะสำหรับไฟล์ที่คั่นด้วยแท็บหรือไม่ ฟังก์ชั่นพิเศษจะได้รับการต้อนรับมากที่สุดเช่นกัน UPD: แก้ไขแล้วsort->join
13 shell  csv 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.