ฉันจะแยกสายยางในตัวละครบางตัวได้อย่างไร?


1

ฉันมีหลายบรรทัดคล้ายกับ:

จัสมิน, เคลลีน, เปลือก; Applebees

ซาร่าห์; วอลมาร์

เฮเลนแม็กซ์แซม; Dell

หลายชื่อเหล่านี้ซ้ำ ฉันต้องหาชื่อที่ใช้ 10 อันดับแรก ฉันพยายามใช้ cut -d "," Restaurants.txt | จัดเรียง | uniq -c | เรียง -rn | หัว -n 10

คำตอบ:


0

เอาล่ะนี่มันไม่สวย แต่อย่างน้อยก็ใช้ได้

 cat restaurants.txt | sed 's/;.*//' |  tr "," "\n" | tr " " "\n" | grep -v '^$' |  sort | uniq -c | sort -r  

2 Sam
2 Max
1 Shelly
1 Sarah
1 Kellyn
1 Jasmine
1 Helen

คำอธิบาย:
sed 's/;.*//'ลบข้อความทั้งหมดหลังจากเครื่องหมายอัฒภาคเช่น (; Applebees)

tr "," "\n" uniq ใช้งานได้เพียงหนึ่งรายการต่อบรรทัดดังนั้นแทนที่เครื่องหมายจุลภาคด้วยบรรทัดใหม่

tr " " "\n" ล้างช่องว่างเพิ่มเติมโดยให้สายของพวกเขา (ไม่จำเป็น)

grep -v '^$' ลบบรรทัดว่างทั้งหมด

sort ทุกประเภท

uniq -c นับซ้ำ

sort -f จัดเรียงตามลำดับมากไปน้อย

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