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

การเรียงลำดับไฟล์ข้อความหรือข้อมูลอื่นตัวอย่างเช่นด้วยยูทิลิตีการเรียงลำดับ

3
จัดเรียงไม่เรียงลำดับบรรทัดด้วยไพพ์ '|' ในนั้นอย่างถูกต้อง
ฉันพยายามเรียงลำดับข้อมูลแบบง่าย ๆ อย่างไรก็ตามการเรียงลำดับนั้นไม่ได้เรียงจริง มันย้ายแถวส่วนหัวของฉันไปที่ด้านล่าง แต่สองแถวของฉันที่เริ่มต้นด้วย 241 ถูกแบ่งโดยแถวที่เริ่มต้นด้วย 24 cat sort_fail.csv column_a|column_b|column_c 241|212|20810378 24|121|2810172 241|213|20810376 sort sort_fail.csv 241|212|20810378 24|121|2810172 241|213|20810376 column_a|column_b|column_c ส่วนหัวของคอลัมน์ถูกย้ายไปที่ด้านล่างของไฟล์ดังนั้นการเรียงลำดับจึงประมวลผลได้ชัดเจน แต่ค่าจริงไม่ได้ถูกจัดเรียงอย่างที่ฉันคาดหวัง ในกรณีนี้ฉันทำงานด้วย sort sort_fail.csv --field-separator='|' -k1,1 แต่ฉันรู้สึกว่าไม่จำเป็น ทำไมการเรียงลำดับจึงไม่เรียงลำดับ
17 sort 

4
จัดเรียงตามวันที่
เดิม: 23 ม.ค. 2011 10:42 บางวัน 2007.12.20.avi 26 มิถุนายน 2009 สิ่งที่เกิดขึ้น 2009.06.25.avi 12 ก.พ. 2010 บางสิ่ง 2010.02.11.avi 29 มกราคม 2011 09:17 บางวัน 2011.01.27.avi ก.พ. 11 2011 20:06 บางวัน 2011.02.10.avi 27 ก.พ. 2011 23:05 บางวัน 2011.02.24.avi เอาท์พุท: 27 ก.พ. 2011 23:05 บางวัน 2011.02.24.avi ก.พ. 11 2011 20:06 บางวัน 2011.02.10.avi 29 มกราคม …
17 sort  busybox 

5
ระบุลำดับการเรียงด้วย LC_COLLATE เพื่อให้ตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่ก่อน
รับไฟล์: $ cat file 1 a C B 2 c 3 A b โดยค่าเริ่มต้นsortจะ: $ sort file 1 2 3 a A b B c C ด้วยLC_COLLATE=Cดังนั้นจะเรียงตัวอักษรตัวพิมพ์ใหญ่ก่อนตัวพิมพ์เล็ก: $ LC_COLLATE=C sort file 1 2 3 A B C a b c เป็นไปได้ไหมที่จะเรียงลำดับเพื่อกลับลำดับของเคสนั่นคือตัวเลขตัวพิมพ์เล็กและตัวพิมพ์ใหญ่?
16 linux  sort 

2
วิธีที่เร็วที่สุดในการลบรายการที่ซ้ำกันในรายการคำศัพท์ขนาดใหญ่?
ฉันต้องทำรายการคำซ้ำให้ซ้ำซ้อน ฉันลองใช้หลายคำสั่งและทำการวิจัยที่นี่และที่นี่ซึ่งพวกเขาอธิบายว่าวิธีที่เร็วที่สุดในการขจัดความซ้ำซ้อนของรายการคำดูเหมือนจะใช้ awk awk -> O (n)? จัดเรียง -> O (n บันทึก n)? อย่างไรก็ตามฉันพบว่าสิ่งนี้ดูเหมือนจะไม่เป็นความจริง นี่คือผลการทดสอบของฉัน: sort -u input.txt -o output.txt จริง 0m12.446s ผู้ใช้ 0m11.347s sys 0m0.906s awk '!x[$0]++' input.txt > output.txt ผู้ใช้0m47.221s จริง0m45.419s sys 0m1.260s ดังนั้นการใช้ sort -u จึงเร็วกว่า 3.7 เท่า ทำไมนี้ มีวิธีที่เร็วยิ่งขึ้นในการทำซ้ำซ้อน? *********** อัปเดต ******** เมื่อมีคนชี้ให้เห็นในความคิดเห็นอาจเป็นไปได้ว่ารายการคำศัพท์ของฉันเรียงลำดับแล้วบ้าง เพื่อแยกความเป็นไปได้นี้ฉันสร้าง wordlist สองรายการโดยใช้สคริปต์ …
14 bash  awk  performance  sort 

4
เรียงลำดับบรรทัดตามจำนวนคำต่อบรรทัด
รับอินพุต: hello: world foo bar baz bar: baz: bin boop bop fiz bang beep bap: bim bam bop boatkeeper: poughkeepsie ฉันต้องการเรียงลำดับเป็นคำส่วนใหญ่ที่ด้านบนสุดไปจนถึงท้ายที่สุดเช่น: baz: bin boop bop fiz bang beep hello: world foo bar baz bap: bim bam bop boatkeeper: poughkeepsie bar: ฉันจะทำสิ่งนี้กับsortเครื่องมืออื่น ๆ ได้อย่างไร?

5
เรียงลำดับเอาต์พุตของ find -exec ls
มันเป็นไปได้ที่จะส่งออกของfind … -exec ls -ls ;เรียงตามลำดับตัวอักษรโดยชื่อไฟล์? นี่คือคำสั่ง cron ของฉัน: find /home/setefgge/public_html -type f -ctime -1 -exec ls -ls {} \; คำสั่งนี้ใช้งานได้ดีส่วนใหญ่ แต่ผลลัพธ์จะไม่เรียงตามลำดับที่มีความหมายใด ๆ มันจะมีประโยชน์มากหากพวกเขาจะเรียงตามฟิลด์ชื่อไฟล์
14 find  ls  sort 

4
จัดเรียงตามค่าฐานสิบหก
การใช้ coreutils sortฉันจะจัดเรียงตัวเลขโดยใช้ค่าเลขฐานสิบหก (ฟิลด์) ได้อย่างไร ฉันคาดหวังบางอย่างตามสายของ sort -k3,3x file_to_sort แต่ดังกล่าวxไม่ได้อยู่ แก้ไข: ทางออกที่ดีที่สุดที่ฉันได้พบคือ: { echo ibase=16; cut -d' ' -f3 file_to_sort; } | bc | paste -d: - file_to_sort | sort -t: -k1,1n | cut -d: -f2- โดยที่cut -d' ' -f3แยกฟิลด์ค้นหา (นี่คือ-k3,3- ซึ่งอาจแตกต่างกันไปแน่นอน) และbcทำการแปลงเป็นทศนิยม (ต้องใช้ hex ตัวพิมพ์ใหญ่โดยไม่มี0xคำนำหน้าตรงกับกรณีของฉัน) จากนั้นฉันเข้าร่วมเรียงลำดับและแยกคอลัมน์
14 sort  coreutils 

5
จัดเรียงไฟล์ข้อความที่มีหลายบรรทัดเป็นแถว
ฉันมีไฟล์ข้อความในรูปแบบนี้: #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 ฉันต้องการเรียงลำดับไฟล์นี้ตามKEYบรรทัดและเก็บ 4 บรรทัดถัดไปไว้ในผลลัพธ์ดังนั้นผลลัพธ์ที่เรียงควรเป็น: #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 มีวิธีทำเช่นนี้หรือไม่?

1
จัดเรียงไฟล์ตามคอลัมน์แรกและคอลัมน์ที่สอง
ฉันจะจัดการไฟล์ข้อความที่คั่นด้วยแท็บสองคอลัมน์โดยเรียงลำดับตามองค์ประกอบแรกของคอลัมน์ที่สองได้อย่างไร (เฉพาะในกรณีที่องค์ประกอบคอลัมน์แรกเหมือนกัน) กันตัวอย่าง: ไฟล์อินพุต 1 A 1-2 A 6-8 A 3-4 B 7-10 B 5-9 ผลลัพธ์ที่คาดหวัง: ไฟล์ 2 A 1-2 A 3-4 A 6-8 B 5-9 B 7-10
13 sort 


2
เรียงลำดับผลลัพธ์ตามคอลัมน์
ฉันต้องการที่จะใช้คำสั่งนี้find -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" | wc -l; done( จากที่นี่ ) ซึ่งมีผลลัพธ์ของพื้น ./kennel: 11062 ./shadow: 15449 ./ccc: 9765 ./journeyo: 14200 ./norths: 10710 และเรียงตามหมายเลขที่ใหญ่ที่สุดไปหาน้อยที่สุด แต่ฉันไม่แน่ใจว่าจะทำsortอย่างไรหรืออะไรก็ตามที่ทำงานในคอลัมน์อื่น

7
วิธีการเรียงลำดับรายการ BibTex (ตามคีย์ใด ๆ ) ในไฟล์ `.bib`
ฉันทำงานกับ LaTeX และทำเวอร์ชันกับ Git สำหรับการจัดการบรรณานุกรมฉันใช้ Mendeley ปัญหาคือทุกครั้งที่ Mendeley ซิงโครไนซ์การ.bibส่งออกมันมีลำดับที่แตกต่างกัน ความคิดของฉันคือการเรียงลำดับรายการ BibTex ใน.bibไฟล์แต่ละครั้งก่อนส่ง คุณช่วยฉันได้ทำอย่างไรในวิธีที่ฉลาด (สั้น & หวาน)? :) PS ฉันสามารถเรียกใช้รูทีนนี้ด้วยตนเองได้ ฉันไม่ต้องการการรวมคอมไพล์ ฉันต้องการให้โปรแกรม / สคริปต์เรียง.bibไฟล์

7
เข้าร่วม:“ ไฟล์ 2 ไม่เรียงตามลำดับ”
ฉันมีสองไฟล์ _jeter3.txt และ _jeter1.txt ฉันได้ตรวจสอบพวกเขาทั้งสองเรียงในคอลัมน์ที่ 20 ใช้ sort -c sort -t ' ' -c -k20,20 _jeter3.txt sort -t ' ' -c -k20,20 _jeter1.txt #no errors แต่มีข้อผิดพลาดเมื่อฉันต้องการjoinไฟล์ทั้งสองมันบอกว่าไฟล์ที่สองไม่ได้เรียง: join -t ' ' -1 20 -2 20 _jeter1.txt _jeter3.txt > /dev/null join: File 2 is not in sorted order ฉันไม่เข้าใจว่าทำไม cat /etc/*-release #FYI …
13 sort  join 

6
การเรียงบล็อกของเส้น
ฉันมีไฟล์ที่มี 4n บรรทัด นี่คือข้อความที่ตัดตอนมาจากมันมี 8 บรรทัด 6115 8.88443 6116 6.61875 6118 16.5949 6117 19.4129 6116 6.619 6117 16.5979 6118 19.4111 6115 8.88433 สิ่งที่ฉันต้องการจะทำคือจัดเรียงบล็อกโดยแต่ละบล็อกประกอบด้วย 4 บรรทัดตามคอลัมน์แรก ผลลัพธ์ของข้อความที่ตัดตอนมาควรมีลักษณะที่แสดงด้านล่าง 6115 8.88443 6116 6.61875 6117 19.4129 6118 16.5949 6115 8.88433 6116 6.619 6117 16.5979 6118 19.4111

4
สุ่มไฟล์โดยมีข้อ จำกัด เพิ่มเติม
ฉันมีรายการเพลงขนาดใหญ่และในขณะที่ศิลปินบางคนมีหลายอัลบั้มคนอื่น ๆ มีเพียงเพลงเดียว ฉันต้องการเรียงลำดับเพลย์ลิสต์เพื่อให้ศิลปินคนเดียวกันไม่เล่นสองครั้งติดต่อกันหรือเพลงของเขาจะไม่จบลงส่วนใหญ่ในตอนต้นหรือตอนท้ายของเพลย์ลิสต์ ตัวอย่างเพลย์ลิสต์: $ cat /tmp/playlist.m3u Anna A. - Song 1 Anna A. - Song 2 I--Rock - Song 1 John B. - Song 1 John B. - Song 2 John B. - Song 3 John B. - Song 4 John B. - Song 5 Kyle C. - …

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