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

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

18
คุณเรียงลำดับผลลัพธ์ตามขนาดอย่างไร
คุณจัดเรียงdu -sh /dir/*ตามขนาดได้อย่างไร ฉันอ่านเว็บไซต์หนึ่งที่กล่าวว่าใช้งาน| sort -nแต่เห็นได้ชัดว่าไม่ถูกต้อง นี่คือตัวอย่างที่ผิด [~]# du -sh /var/* | sort -n 0 /var/mail 1.2M /var/www 1.8M /var/tmp 1.9G /var/named 2.9M /var/run 4.1G /var/log 8.0K /var/account 8.0K /var/crash 8.0K /var/cvs 8.0K /var/games 8.0K /var/local 8.0K /var/nis 8.0K /var/opt 8.0K /var/preserve 8.0K /var/racoon 12K /var/aquota.user 12K /var/portsentry 16K /var/ftp …

3
เรียงลำดับและนับจำนวนการเกิดบรรทัด
ฉันมีApachelogfile access.logจะนับจำนวนบรรทัดที่เกิดขึ้นในไฟล์นั้นได้อย่างไร ตัวอย่างเช่นผลลัพธ์ของcut -f 7 -d ' ' | cut -d '?' -f 1 | tr '[:upper:]' '[:lower:]'คือ a.php b.php a.php c.php d.php b.php a.php ผลลัพธ์ที่ฉันต้องการคือ: 3 a.php 2 b.php 1 d.php # order doesn't matter 1 c.php
145 command-line  sort 

5
จัดเรียงตามคอลัมน์ที่สาม
ฉันกำลังเจอไฟล์ 4 คอลัมน์ขนาดใหญ่ ฉันต้องการแสดงไฟล์เรียงลำดับใน stdout ตามคอลัมน์ที่ 3: cat myFile | sort -u -k3 นั่นก็เพียงพอแล้วที่จะทำการหลอกลวง?
131 files  sort 

10
รายการไฟล์ที่เรียงลำดับตัวเลข
ฉันมีพวงของไฟล์จากไปlog1log164 ฉันพยายามที่จะแสดงรายการไดเรกทอรี (เรียงลำดับ) ในเทอร์มินัล UNIX แต่ฟังก์ชั่นการเรียงลำดับจะให้รูปแบบดังนี้: home:logs Home$ ls -1 | sort log1.gz log10.gz log100.gz log101.gz log102.gz log103.gz log104.gz log105.gz log106.gz ...etc สิ่งที่ฉันต้องการคือ home:logs Home$ ls -1 | sort log1.gz log2.gz log3.gz log4.gz log5.gz log6.gz log7.gz ...{more here} log99.gz log100.gz log101.gz log102.gz ...etc ข้อเสนอแนะใด ๆ ในสิ่งที่ฉันสามารถใช้เพื่อทำสิ่งนี้?
122 ls  filenames  sort  numbering 

5
อะไรคือความแตกต่างระหว่าง "sort -u" และ "sort | UNIQ”?
ทุกที่ที่ฉันเห็นคนที่ต้องการเรียงลำดับรายการที่ไม่ซ้ำใครพวกเขาจะไปถึงsort | uniqเสมอ ฉันไม่เคยเห็นตัวอย่างที่มีคนใช้sort -uแทน ทำไมจะไม่ล่ะ? ความแตกต่างคืออะไรและทำไมการใช้ uniq จึงดีกว่าการจัดเรียงค่าสถานะเฉพาะ
120 bash  sort  uniq 

2
กำลังพยายามเรียงลำดับในสองเขตข้อมูลรองจากนั้นก่อน
ฉันพยายามเรียงลำดับหลายคอลัมน์ ผลลัพธ์ไม่เป็นไปตามที่คาดไว้ นี่คือข้อมูลของฉัน (people.txt): Simon Strange 62 Pete Brown 37 Mark Brown 46 Stefan Heinz 52 Tony Bedford 50 John Strange 51 Fred Bloggs 22 James Bedford 21 Emily Bedford 18 Ana Villamor 44 Alice Villamor 50 Francis Chepstow 56 การทำงานต่อไปนี้ถูกต้อง: bash-3.2$ sort -k2 -k3 <people.txt Emily Bedford 18 James …
106 sort 

4
การเรียงลำดับรองรับการเรียงลำดับไฟล์ในสถานที่เช่น `sed --in-place` หรือไม่?
ฉันตาบอดหรือมีตัวเลือกที่ไม่เหมือนใคร--in-placeสำหรับsort? เพื่อบันทึกผลลัพธ์ไปยังไฟล์อินพุต sed use -i( --in-place) การเปลี่ยนทิศทางเอาต์พุตของsortไปยังไฟล์อินพุต sort < f > f ผลลัพธ์ในการทำให้ว่างเปล่า หากไม่มี--in-placeตัวเลือก - อาจมีเคล็ดลับวิธีการทำสิ่งนี้ด้วยวิธีที่สะดวก (สิ่งเดียวที่มาในใจของฉัน: sort < f > /tmp/f$$ ; cat /tmp/f$$ > f ; rm /tmp/f$$ การย้ายไม่ใช่ตัวเลือกที่ถูกต้องอาจทำให้สิทธิ์ในการใช้ไฟล์เปลี่ยนไป นั่นเป็นเหตุผลที่ฉันเขียนทับเนื้อหาของไฟล์ temp ที่ฉันลบออกไป)

4
เรียงลำดับผลลัพธ์ของ“ ค้นหา” หรือไม่
ฉันต้องสามารถเรียงลำดับเอาต์พุตตามตัวอักษรfindก่อนที่จะไพพ์ไปยังคำสั่ง การเข้า| sort |ระหว่างไม่ทำงานฉันควรทำอย่างไร find folder1 folder2 -name "*.txt" -print0 | xargs -0 myCommand
77 shell  find  sort  xargs 

7
ฉันจะลบรายการที่ซ้ำกันใน. bash_history ของฉันเพื่อรักษาลำดับได้อย่างไร
ฉันสนุกกับการใช้control+rเพื่อค้นหาประวัติคำสั่งของฉันซ้ำ ๆ ฉันพบตัวเลือกที่ดีบางอย่างที่ฉันชอบใช้กับมัน: # ignore duplicate commands, ignore commands starting with a space export HISTCONTROL=erasedups:ignorespace # keep the last 5000 entries export HISTSIZE=5000 # append to the history instead of overwriting (good for multiple connections) shopt -s histappend ปัญหาเดียวสำหรับฉันคือการerasedupsลบรายการที่ซ้ำกันตามลำดับเท่านั้นดังนั้นด้วยคำสั่งสตริงนี้: ls cd ~ ls lsคำสั่งจริงจะถูกบันทึกไว้เป็นครั้งที่สอง ฉันคิดเกี่ยวกับการทำงานเป็นระยะ ๆ ด้วย: cat .bash_history | …

11
จัดเรียง แต่ให้บรรทัดส่วนหัวอยู่ด้านบน
ฉันได้รับผลลัพธ์จากโปรแกรมที่สร้างหนึ่งบรรทัดที่เป็นส่วนหัวของคอลัมน์จากนั้นเป็นกลุ่มของข้อมูล ฉันต้องการตัดคอลัมน์ต่าง ๆ ของผลลัพธ์นี้และดูเรียงตามคอลัมน์ต่าง ๆ ไม่มีส่วนหัวที่ตัดและการเรียงลำดับจะประสบความสำเร็จได้อย่างง่ายดายผ่านทาง-kตัวเลือกที่จะsortไปพร้อมกับcutหรือawkเพื่อดูชุดย่อยของคอลัมน์นี้ อย่างไรก็ตามวิธีการเรียงลำดับนี้จะรวมส่วนหัวของคอลัมน์เข้ากับส่วนที่เหลือของบรรทัดผลลัพธ์ มีวิธีง่ายๆในการรักษาส่วนหัวไว้ที่ด้านบนหรือไม่?

2
awk '! a [$ 0] ++' ทำงานอย่างไร
หนึ่งซับนี้จะลบบรรทัดที่ซ้ำกันออกจากการป้อนข้อความโดยไม่ต้องเรียงลำดับล่วงหน้า ตัวอย่างเช่น: $ cat >f q w e w r $ awk '!a[$0]++' <f q w e r $ รหัสเดิมที่ฉันพบใน internets อ่านได้: awk '!_[$0]++' นี่เป็นสิ่งที่ทำให้ฉันงุนงงมากขึ้นเมื่อฉัน_มีความหมายพิเศษใน awk เช่นใน Perl แต่กลายเป็นชื่อของอาร์เรย์ ตอนนี้ฉันเข้าใจตรรกะเบื้องหลังหนึ่งซับ: แต่ละบรรทัดอินพุตถูกใช้เป็นคีย์ในอาร์เรย์แฮชดังนั้นเมื่อเสร็จสมบูรณ์แฮชจะมีบรรทัดที่ไม่ซ้ำกันตามลำดับการมาถึง สิ่งที่ฉันต้องการเรียนรู้คือสัญกรณ์นี้ตีความโดย awk ได้อย่างไร เช่นความหมายของสัญญาณบาง ( !) และองค์ประกอบอื่น ๆ ของข้อมูลโค้ดนี้ มันทำงานยังไง?

3
วิธีการจัดเรียงไฟล์ขนาดใหญ่?
ฉันมีพีซีที่ใช้ Intel (R) Pentium (R) CPU G640 @ 2.80 GHz และ RAM 8 GB ฉันใช้ Scientific Linux 6.5 บนระบบไฟล์ EXT3 ในการตั้งค่านี้วิธีที่เร็วที่สุดที่ฉันสามารถทำได้sort -uบนไฟล์ 200 กิกะไบต์คืออะไร? ฉันควรแบ่งไฟล์ออกเป็นไฟล์ที่เล็กกว่า (เล็กกว่า 8 GB) sort -uรวมเข้าด้วยกันแล้วแยกเป็นขนาดอื่นsort -uอีกครั้งหรือไม่ หรือมีสคริปต์การเรียงลำดับโปรแกรมที่สามารถจัดการไฟล์ขนาดใหญ่นี้ด้วย RAM ที่มีจำนวน จำกัด ของฉันได้หรือไม่
35 sort 

2
ทำไมการจัดเรียง -o จึงมีประโยชน์
ปรัชญา UNIX พูดว่า: ทำสิ่งหนึ่งและทำได้ดี สร้างโปรแกรมที่จัดการข้อความเนื่องจากเป็นอินเตอร์เฟซสากล sortคำสั่งอย่างน้อยการจัดเรียงของ GNU มีตัวเลือกในการส่งออกไปยังไฟล์แทน-o stdoutทำไมจึงพูดsort foobar -o whateverประโยชน์เมื่อฉันสามารถทำได้เพียงแค่sort foobar > whatever?

1
ทำไมการเรียงลำดับจึงเปลี่ยนลำดับของบรรทัดด้วยคีย์การเรียงลำดับที่เหมือนกัน
นี่คือข้อมูล: D 2 B 2 A 2 เมื่อฉันเรียกใช้คำสั่งนี้: sort -k2,2 file มันเอาท์พุท: A 2 B 2 D 2 คำถามของฉันคือเมื่อฉันระบุเฉพาะคอลัมน์ที่สอง-k2,2ทำไมมันเรียงตามคอลัมน์แรกเช่นกัน เนื่องจากค่าทั้งหมดของคอลัมน์ที่สองเหมือนกันดังนั้นจึงควรปล่อยไว้ตามที่เป็น
31 sort 

6
วิธีแสดงรายการไฟล์ที่เรียงลำดับตามวันที่แก้ไขซ้ำ ๆ (ไม่มีคำสั่งสถิติให้ใช้!)
ฉันจะรับรายชื่อของไฟล์ทั้งหมดภายใต้ไดเรกทอรีปัจจุบันพร้อมกับวันที่แก้ไขและเรียงลำดับตามวันที่ได้อย่างไร ตอนนี้ฉันรู้วิธีการที่จะประสบความสำเร็จที่มีfind, statและsortแต่ด้วยเหตุผลแปลกบางอย่างstatไม่ได้ติดตั้งบนกล่องและมันไม่น่าที่ฉันจะได้รับการติดตั้ง ตัวเลือกอื่น ๆ ? PS: gccไม่ได้ติดตั้งเช่นกัน
31 files  date  sort 

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