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

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

8
ฉันจะรับจำนวนตัวอักษรของคำในคอลัมน์ใดคอลัมน์หนึ่งได้อย่างไร
ฉันมีไฟล์ CSV เช่นนี้: abd,123,egypt,78 cde,456,england,45 ฉันจะรับจำนวนตัวอักษรของคำในคอลัมน์ที่ 3 ได้อย่างไร ฉันไม่สามารถหาวิธีwcทำสิ่งนี้ได้
12 shell  columns  csv  wc 

2
วิธีแสดง TSV (csv) ในคอนโซลเมื่อไม่พบเซลล์ว่าง: `column -t -s $ '\ t' '
ฉันมีไฟล์ที่มีคอลัมน์ spearated tabกับ ฉันมีไฟล์เมื่อบางแถวมีเซลล์ว่าง (ที่จุดเริ่มต้นตรงกลาง) ในกรณีดังกล่าวcolumn -t -s $'\t'ก็ล้มเหลว: การป้อนข้อมูล: $ echo -e 'A\tB\tC\tD\n\tb1\t\td1\n\t\t\td2\na3\t\t\td3' > in.tsv $ hexdump -C in.tsv 00000000 41 09 42 09 43 09 44 0a 09 62 31 09 09 64 31 0a |A.B.C.D..b1..d1.| 00000010 09 09 09 64 32 0a 61 33 09 09 09 …

6
ลบบรรทัดออกจากไฟล์โดยขึ้นอยู่กับบรรทัดที่พบในไฟล์อื่น
ไฟล์ file1.txt มีบรรทัดเช่น: /api/purchase/<hash>/index.html ตัวอย่างเช่น: /api/purchase/12ab09f46/index.html ไฟล์ file2.csv มีบรรทัดเช่น: <hash>,timestamp,ip_address ตัวอย่างเช่น: 12ab09f46,20150812235200,22.231.113.64 a77b3ff22,20150812235959,194.66.82.11 ฉันต้องการกรอง file2.csv ลบบรรทัดทั้งหมดที่มีค่าแฮชอยู่ใน file1.txt กล่าวได้ว่า: cat file1.txt | extract <hash> | sed '/<hash>/d' file2.csv หรืออะไรทำนองนี้ มันควรจะตรงไปตรงมา แต่ดูเหมือนว่าฉันจะไม่สามารถใช้งานได้ ใครช่วยกรุณาให้ขั้นตอนการทำงานสำหรับงานนี้ได้ไหม

2
ทำดัชนีไฟล์ CSV ใหม่อีกครั้ง
ฉันได้คำตอบในหัวข้อที่เป็นประโยชน์นี้แต่ปัญหาของฉันดูเหมือนจะแตกต่างกันพอที่ฉันไม่สามารถคิดถึงคำตอบที่ดี (อย่างน้อยก็ด้วยsed) ฉันมีไฟล์ CSV ขนาดใหญ่ (200+ GB) พร้อมแถวที่มีลักษณะดังนี้: <alphanumerical_identifier>,<number> ที่<alphanumerical_identifier>ไม่ซ้ำกันในไฟล์ทั้งหมด ฉันต้องการสร้างไฟล์แยกที่แทนที่คอลัมน์แรกด้วยดัชนีเช่น <index>,<number> เพื่อให้เราได้รับ: 1, <number> 2, <number> 3, <number> สามารถawkสร้างดัชนีที่เพิ่มขึ้นโดยไม่โหลดไฟล์เต็มในหน่วยความจำได้ไหม? เนื่องจากดัชนีเพิ่มขึ้นแบบ monotonically มันอาจจะดีกว่าถ้าจะวางดัชนี วิธีแก้ปัญหาสำหรับสิ่งนั้นจะแตกต่างกันหรือไม่เช่น: <number> <number> <number>
11 files  sed  awk  csv 

3
จัดรูปแบบเอาต์พุตคำสั่ง 'ps' โดยไม่มีช่องว่าง
ฉันมีpsคำสั่งต่อไปนี้เพื่อรับคุณสมบัติเฉพาะของกระบวนการทำงานทั้งหมดพร้อมกับคุณสมบัติบางอย่าง: ps --no-headers -exo "uname,ppid,pid,etime,%cpu,%mem,args" ฉันต้องการจัดรูปแบบเป็น CSV เพื่อให้สามารถวิเคราะห์ได้ หมายเหตุฉันวางส่วนท้ายเพื่อให้การแยกวิเคราะห์ง่ายขึ้น ฉันไม่คิดว่า,จะมีอยู่ในคอลัมน์อื่น ๆ - โปรดแก้ไขฉันหากฉันผิด ฉันจะลบช่องว่างออกได้อย่างไร
11 csv  ps 

5
แทนที่ขีดล่างด้วยเครื่องหมายจุลภาคและลบเครื่องหมายคำพูดคู่ใน CSV
ฉันมีไฟล์ CSV เป็น input.csv "1_1_0_0_76" "1_1_0_0_77" "1_1_0_0_78" "1_1_0_0_79" "1_1_0_0_80" "1_1_0_0_81" "1_1_0_0_82" "1_1_0_0_83" "1_1_0_0_84" "1_1_0_0_85" ............. เป็นต้น ฉันต้องการแปลงไฟล์ CSV นี้เป็น result.csv 1,1,0,0,76 1,1,0,0,77 1,1,0,0,78 1,1,0,0,79 1,1,0,0,80 1,1,0,0,81 1,1,0,0,82 1,1,0,0,83 1,1,0,0,84 1,1,0,0,85

4
ลบเฉพาะเครื่องหมายจุลภาคที่อยู่ในเครื่องหมายคำพูดคู่
ในไฟล์ข้อความฉันต้องการลบ,(เครื่องหมายจุลภาค) และ"(เครื่องหมายคำพูด) (เฉพาะเมื่อเครื่องหมายคำพูดคู่มีตัวเลขคั่นด้วยเครื่องหมายจุลภาค) 56,72,"12,34,54",x,y,"foo,a,b,bar" ouput ที่คาดหวัง 56,72,123454,x,y,"foo,a,b,bar" หมายเหตุ:ฉันแสดงบรรทัดด้านบนเป็นตัวอย่าง ไฟล์ข้อความของฉันมีหลายบรรทัดเหมือนด้านบนและตัวเลขที่คั่นด้วยเครื่องหมายจุลภาคที่อยู่ในเครื่องหมายคำพูดคู่ควรเปลี่ยนไป นั่นคือ, 56,72,"12,34,54",x,y,"foo,a,b,bar" 56,92,"12,34",x,y,"foo,a,b,bar" 56,72,"12,34,54,78,76,54,67",x,y,"foo,a,b,bar" 56,72,x,y,"foo,a,b,bar","12,34,54" 56,72,x,y,"foo,a,b,bar","12,34,54","45,57,84,92","bar,foo" ผลลัพธ์ที่คาดหวัง: 56,72,123454,x,y,"foo,a,b,bar" 56,92,1234,x,y,"foo,a,b,bar" 56,72,12345478765467,x,y,"foo,a,b,bar" 56,72,x,y,"foo,a,b,bar",123454 56,72,x,y,"foo,a,b,bar",123454,45578492,"bar,foo" มีnตัวเลขอยู่ในเครื่องหมายคำพูดคู่คั่นด้วยเครื่องหมายจุลภาค และยังเว้นเครื่องหมายคำพูดคู่ซึ่งมีอักขระเหมือนเดิม ฉันรักsedเครื่องมือประมวลผลข้อความ ฉันดีใจที่คุณโพสต์sedวิธีแก้ปัญหาสำหรับเรื่องนี้

5
แยกไฟล์ข้อความที่คั่นด้วยทุบตีเป็นข้อโต้แย้งคำสั่ง
ฉันมีไฟล์ข้อความแยกย่อยดังนี้: field1,field2,field3 xield1,xield2,xield3 dield1,dield2,dield3 gield1,gield2,gield3 แต่ละคอลัมน์เหล่านี้จะเป็นพารามิเตอร์ของโปรแกรมและฉันต้องการให้โปรแกรมถูกเรียกสำหรับแต่ละบรรทัด ฉันหวังว่าจะวนซ้ำบางอย่างเช่น: for $i in file command $field2 -x $field3 -PN -$field1 >> output done อะไรจะเป็นวิธีที่ดีที่สุดในการบรรลุสิ่งนี้ในทุบตี?

1
awk ลบจุดออกจากสตริงโดยไม่คาดคิด
ฉันต้องการเพิ่มคอลัมน์ (ที่ 2) ใน.csvไฟล์และฉันต้องการให้ค่าของคอลัมน์นั้นเป็นสตริงและจะถูกยกมา คำสั่งต่อไปนี้จะเพิ่มคอลัมน์ แต่ไม่มีเครื่องหมายคำพูด: awk -F"," 'BEGIN { OFS = "," } {$2="2.4.0"; print}' test.csv > output.csv วิธีการต่อไปนี้รวมคำพูด แต่ด้วยเหตุผลบางประการมันจะลบ.(จุด) สุดท้ายออกจากค่า awk -F"," 'BEGIN { OFS = "," } {$2="\""2.4.0"\""; print}' test.csv > output.csv ดังนั้นคุณค่าของฉันคือ "2.40" ฉันจะไปเกี่ยวกับเรื่องนี้ได้อย่างไร
9 awk  csv 

1
วิธีรับแถวที่คอลัมน์ n ประกอบด้วยคอลัมน์ mth
ฉันมีไฟล์ CSV ที่มีโดเมนและเว็บเมลเช่นนี้ site1.com,mail.site1.com site2.com,testmail.com site3.com,mx.site3.com site4.com,smtp.site4.com site5.com,foomail.com site6.com,barmail.com site7.com,webmail.site7.com site8.com,01mx.site8.com site9.com,foobarmail.com site10.com,mx-smtp222.site10.com ฉันต้องการรับแถวที่คอลัมน์เว็บเมลมีคอลัมน์โดเมนของแถวเดียวกัน สำหรับตัวอย่างข้างต้นผลลัพธ์ควรเป็น: site1.com,mail.site1.com site3.com,mx.site3.com site4.com,smtp.site4.com site7.com,webmail.site7.com site8.com,01mx.site8.com site10.com,mx-smtp222.site10.com

7
เก็บเฉพาะบรรทัดที่มีจำนวนตัวคั่นที่แน่นอน
ฉันมีไฟล์ csv ขนาดใหญ่ที่มี 10 ฟิลด์คั่นด้วยเครื่องหมายจุลภาค น่าเสียดายที่บางบรรทัดมีรูปแบบไม่ถูกต้องและไม่มีเครื่องหมายจุลภาค 10 รายการ (สาเหตุที่ทำให้เกิดปัญหาเมื่อฉันต้องการอ่านไฟล์ลงใน R) ฉันจะกรองเฉพาะบรรทัดที่มีเครื่องหมายจุลภาค 10 รายการได้อย่างไร
9 csv  filter 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.