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

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

5
วิธีการจัดเรียงขนาดที่มนุษย์อ่านได้
โดยทั่วไปฉันกำลังมองหาไฟล์แล้วจัดเรียงตามขนาด สคริปต์ทำงานได้ถ้าฉันไม่จัดเรียงตามขนาดที่มนุษย์อ่านได้ แต่ฉันต้องการขนาดที่มนุษย์สามารถอ่านได้ ฉันจะจัดเรียงขนาดที่มนุษย์สามารถอ่านได้ได้อย่างไร ตัวอย่างเช่น: ls -l | sort -k 5 -n | awk '{print $9 " " $5}' ใช้งานได้ตามที่คาดหวังฉันมีขนาดไฟล์ของฉันเป็นไบต์จากน้อยไปมาก: 1.txt 1 test.txt 3 bash.sh* 573 DocGeneration.txt 1131 andres_stuff.txt 1465 Branches.xlsx 15087 foo 23735 bar 60566 2016_stuff.pdf 996850 ตอนนี้ฉันต้องการให้ขนาดที่มนุษย์อ่านได้ดังนั้นฉันจึงเพิ่มพารามิเตอร์ -h ลงใน ls และตอนนี้ไฟล์บางไฟล์ไม่เป็นระเบียบ: ls -lh | sort -k 5 -n …
11 find  ls  sort 

13
ฉันจะเรียงลำดับรายการที่คั่นด้วยบรรทัดเดียวได้อย่างไร
ฉันมีจำนวนบรรทัด (หรือหลายบรรทัด) ที่คั่นด้วยอักขระที่กำหนดเอง เครื่องมือ UNIX ใดที่ฉันสามารถใช้เพื่อเรียงลำดับรายการของแต่ละบรรทัดเป็นตัวเลขรักษาตัวคั่น ตัวอย่างรวมถึง: รายการของตัวเลข อินพุต: 10 50 23 42; เรียง:10 23 42 50 ที่อยู่ IP; อินพุต: 10.1.200.42; เรียง:1.10.42.200 CSV; อินพุต: 1,100,330,42; เรียง:1,42,100,330 ท่อที่คั่น; อินพุต: 400|500|404; เรียง:400|404|500 เนื่องจากตัวคั่นมีความอิสระให้คุณตอบ (หรือขยาย) คำตอบโดยใช้ตัวคั่นตัวเดียวที่คุณเลือก

1
วิธีจัดเรียงไฟล์ตามส่วนของฟิลด์
ฉันต้องการเรียงลำดับไฟล์: D104HN-D104HA 8.320 4.521 1.69e+05 -- D104HN-D104HB* 8.320 2.823 2.93e+05 -- A90HB#-A90HA 1.655 4.207 7.12e+05 -- A90HB#-F91HA 1.653 4.411 8.59e+04 -- A114HB#-A114HA 1.253 4.098 7.67e+05 -- A114HB#-R111HA 1.251 3.929 1.76e+05 -- A114HB#-W110HA 1.253 4.451 3.68e+04 -- F91HE*-F91HZ 7.237 7.122 7.85e+05 -- F91HE*-K92HA 7.242 3.910 4.88e+04 -- และรับสิ่งนี้ A90HB#-A90HA 1.655 4.207 …

4
คู่ผลรวมของคอลัมน์ตามเขตข้อมูลที่ตรงกัน
ฉันมีไฟล์ขนาดใหญ่ในรูปแบบต่อไปนี้: 2 1019 0 12 2 1019 3 0 2 1021 0 2 2 1021 2 0 2 1022 4 5 2 1030 0 1 2 1030 5 0 2 1031 4 4 หากค่าในคอลัมน์ 2ตรงกันฉันต้องการรวมผลรวมในคอลัมน์ 3และ4ของทั้งสองบรรทัดหรือจะรวมเพียงผลรวมของค่าในบรรทัดที่ไม่ซ้ำกัน ดังนั้นผลลัพธ์ที่ฉันหวังไว้จะเป็นดังนี้: 2 1019 15 2 1021 4 2 1022 9 2 1030 6 2 …

3
การเรียงลำดับข้อมูลเร็วขึ้น
ฉันต้องเรียงลำดับbedไฟล์แบบสุ่ม 10,000 ครั้งและรับ 1,000 แถวสูงสุดในแต่ละครั้ง ขณะนี้ฉันกำลังใช้รหัสต่อไปนี้: for i in {1..100}; do for j in {1..100}; do sort -R myfile.bed_sorted | tail -n 1000 > myfile.bed.$i.$j.bed done done ใช้เวลาเกือบ 6 ชั่วโมงในการทำเช่นนี้สำหรับแต่ละไฟล์ ฉันมีประมาณ 150 คนที่จะออกกำลังกาย มีวิธีแก้ปัญหาที่เร็วกว่านี้หรือไม่? ตัวอย่างของข้อมูล (myfile.bed_sorted) ฉันมี: chr1 111763899 111766405 peak1424 1000 . 3224.030 -1 -1 chr1 144533459 144534584 peak1537 …
11 sort 

7
จัดเรียงไฟล์ในไดเรกทอรีซ้ำตามวันที่แก้ไขล่าสุด
จัดเรียงไฟล์ในไดเรกทอรีซ้ำตามวันที่แก้ไขล่าสุด ฉันได้แก้ไขไฟล์จำนวนมากในไดเรกทอรีของฉันต้องการทราบว่าไฟล์เหล่านั้นคืออะไรโดยเรียงลำดับตามวันที่แก้ไขล่าสุดและฉันต้องการให้ส่วนขยายบางส่วนถูกแยกออก ในไดเรกทอรี svn ฉันมีไฟล์. svn จำนวนมากเช่นกันซึ่งฉันไม่ต้องการแสดงในการเรียงลำดับ
11 shell  scripting  find  sort 

5
ลบบรรทัดที่ซ้ำกันที่อยู่ติดกันในขณะที่รักษาการสั่งซื้อ
ฉันมีไฟล์ที่มีหนึ่งคอลัมน์ที่มีชื่อที่ซ้ำหลายครั้งในแต่ละครั้ง ฉันต้องการรวมการทำซ้ำแต่ละครั้งเป็นหนึ่งในขณะที่การทำซ้ำชื่ออื่นที่มีชื่อเดียวกันที่ไม่ติดกับชื่อซ้ำกันอื่น ๆ เช่นฉันต้องการเลี้ยวซ้ายไปทางขวา: Golgb1 Golgb1 Golgb1 Akna Golgb1 Spata20 Golgb1 Golgb1 Golgb1 Akna Akna Akna Akna Spata20 Spata20 Spata20 Golgb1 Golgb1 Golgb1 Akna Akna Akna นี่คือสิ่งที่ฉันใช้: perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt อย่างไรก็ตามวิธีนี้จะช่วยให้ตัวแทนหนึ่งคนจากด้านซ้ายเท่านั้น (เช่น Golb1 และ Akna ไม่ซ้ำกัน) มีวิธีในการเก็บชื่อที่ไม่ซ้ำกันสำหรับแต่ละบล็อกในขณะที่รักษาชื่อที่ทำซ้ำในบล็อกหลายบล็อกที่ไม่ติดกันหรือไม่
11 awk  sed  sort  uniq 

3
เรียงลำดับที่งานตามลำดับเวลา
อาจเป็นทางออกที่ง่ายฉันหายไป ฉันจะได้รับผลลัพธ์ของการatqเรียงลำดับตามลำดับเวลาได้อย่างไรเพื่อให้ฉันสามารถดูได้ง่ายว่าใครจะทำงานต่อไป manหน้าsortไม่ได้มีอะไรในตัวที่จะรับรู้การประทับเวลาเช่นต่อไปนี้: atq 1264 Sat Mar 24 15:03:00 2012 a master 1445 Sat Mar 24 20:28:00 2012 a master 1548 Sun Mar 25 15:09:00 2012 a master 1193 Sat Mar 24 11:03:00 2012 a master 1359 Sat Mar 24 17:13:00 2012 a master 1726 Mon Mar 26 21:24:00 2012 …
11 date  sort  at 

2
บรรทัด `uniq 'ของฉันหรือ` sort -u' หายไปไหนด้วยอักขระ Unicode บางตัว
เกิดอะไรขึ้นในข้อมูลโค้ดต่อไปนี้ ฉันไม่ได้รับผลลัพธ์ที่คาดหวัง ฉันคิดว่ามันเป็นข้อผิดพลาด แต่มันเกิดขึ้นสำหรับ 2 โปรแกรมที่แตกต่างกัน (uniq และ sort) ดังนั้นฉันสงสัยว่ามันเป็นบางสิ่งที่ต้องทำกับ ... อืมฉันไม่รู้ว่า ... ดังนั้นคำถาม ตัวอย่าง 3 (4 จาก) แรกทำงานได้ แต่ 4 ล้มเหลว! ฉันคาดว่าจะมีพฤติกรรมแบบเดียวกันสำหรับตัวละครทุกตัว กล่าวคือ เพื่อพิมพ์ 2 บรรทัด (จากอินพุต 3 บรรทัด) ... แต่ในกรณีที่ 4 ฉันได้รับเพียง 1 บรรทัด (สำหรับทั้งคู่sort -uและuniq); สอง lins ที่เหมือนกันเพิ่งหายไป! ฉันได้แปลงเอาท์พุท '\ n' เป็นพื้นที่เพื่อความกะทัดรัด ฉันใช้uniqและเรียงลำดับจาก (GNU coreutils) 7.4 ... …


4
เรียงลำดับฟิลด์แบบอินไลน์
ฉันพยายามจัดเรียงภายในบรรทัดอินพุตที่มีจำนวนฟิลด์ที่ไม่รู้จัก: การป้อนข้อมูล: ab bc bc ab cd ef bc bc cd ef cd bc ab ef ab bc cd gh เอาท์พุท: ab bc ab bc bc cd ef bc cd ef ab cb cd ab bc cd ef gh ฉันใช้สิ่งที่คล้ายกันawk '{if($2 < $1) print $2,$1;else print}'แต่ดูเหมือนว่ามันจะยุ่งมากกว่าสองสาขา ความช่วยเหลือใด ๆ

1
coreutils gnu เรียงลำดับแตกหรือไม่
พิจารณาอินพุตต่อไปนี้เพื่อจัดเรียง: cat > foo <<EOM D,,5014978 DD,,25 D,I,1972765530 D,Y,4223624 -,Y,71285059 YA,I,2 EOM ตอนนี้ลองเรียกใช้ sort foo ผลลัพธ์ไม่ถูกจัดเรียงเมื่อพยายามทำสิ่งนี้บนกล่อง linux ของฉัน (gnu coreutils รุ่น 6.9-7.4) เอาต์พุตถูกเรียงลำดับเมื่อรันภายใต้ cygwin (gnu coretuils 8.5) ความคิดเห็น?
10 bash  coreutils  sort 

6
เรียงลำดับทุบตีตามความยาวขององค์ประกอบ?
รับอาร์เรย์ของสตริงฉันต้องการเรียงลำดับตามความยาวของแต่ละองค์ประกอบ ตัวอย่างเช่น... array=( "tiny string" "the longest string in the list" "middle string" "medium string" "also a medium string" "short string" ) ควรจัดเรียง ... "the longest string in the list" "also a medium string" "medium string" "middle string" "short string" "tiny string" (เป็นโบนัสมันจะดีถ้ารายการเรียงสตริงที่มีความยาวเท่ากันตามลำดับตัวอักษรในตัวอย่างข้างต้นmedium stringถูกเรียงลำดับก่อนmiddle stringแม้ว่าจะมีความยาวเท่ากัน แต่นั่นไม่ใช่ข้อกำหนด "ยาก" หากซับซ้อนกว่า สารละลาย). มันก็โอเคถ้ามีการจัดเรียงอาร์เรย์ในสถานที่ …

2
ใช้ GNU sort เพื่อเรียงลำดับโดยใช้คีย์เดียว / ป้องกันการเรียงลำดับของคีย์อื่นที่ไม่ต้องการ
ฉันมีไฟล์ที่มีข้อมูลที่สั่งไว้แล้วและฉันต้องการสั่งซื้อไฟล์อีกครั้งตามค่าในคีย์เดียวโดยไม่ทำลายลำดับของข้อมูลในคีย์อื่น ฉันจะป้องกันไม่ให้ GNU เรียงลำดับจากการเรียงแถวตามค่าของคีย์ที่ฉันไม่ได้ระบุหรือฉันจะระบุ GNU sort เพื่อละเว้นช่วงของคีย์เมื่อเรียงลำดับได้อย่างไร ไฟล์ data.txt: 1 Don't 2 C 1 Sort 2 B 1 Me 2 A ผลลัพธ์ที่คาดหวัง: 1 Don't 1 Sort 1 Me 2 C 2 B 2 A คำสั่ง: sort -k 1,1 <data.txt ผลลัพธ์: การเรียงลำดับที่ไม่ต้องการฉันไม่ได้ถาม: 1 Don't 1 Me 1 Sort 2 A 2 …
9 sort 

2
Grep เริ่มต้นจากข้อความคงที่จนกระทั่งบรรทัดว่างแรก
ฉันมีไฟล์prova.txtเช่นนี้: Start to grab from here: 1 fix1 fix2 fix3 fix4 random1 random2 random3 random4 extra1 extra2 bla Start to grab from here: 2 fix1 fix2 fix3 fix4 random1546 random2561 extra2 bla bla Start to grab from here: 1 fix1 fix2 fix3 fix4 random1 random22131 และฉันต้อง grep out จาก "Start …

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