/ usr / bin / ptx: คุณสามารถให้กรณีการใช้งานหรือสอง?


20

ฉันกำลังดูรายการของไฟล์ที่รวมอยู่ใน coreutils และฉันสามารถสร้างตัวอย่างของวิธีที่ฉันสามารถใช้คำสั่งทั้งหมดที่จัดเตรียมไว้ให้สำหรับตัวเองยกเว้น ptx คุณสามารถยกตัวอย่างการใช้ ptx หนึ่งหรือสอง (หรือสาม) ได้หรือไม่ กรณีการใช้งานที่หลากหลายยิ่งดี

$ apropos ptx
ptx(1)         - produce a permuted index of file contents

คำตอบ:


10

เห็นได้ชัดว่ามันถูกใช้เพื่อจัดทำดัชนีคู่มืออ้างอิง Unix ในสมัยก่อน

ในการอ้างอิงด้านล่างบทความ Wikipedia อธิบายว่าดัชนีที่เปลี่ยนแปลงคืออะไร (เรียกอีกอย่างว่า KWIC หรือ "คำหลักในบริบท") และลงท้ายด้วย cryptic:

หนังสือประกอบด้วยส่วนสั้น ๆ จำนวนมากพร้อมหัวเรื่องอธิบายของตัวเองคอลเลคชันหน้าคู่มือที่สะดุดตาที่สุดมักจะจบลงด้วยส่วนดัชนีเรียงสับเปลี่ยนซึ่งช่วยให้ผู้อ่านสามารถค้นหาหัวข้อได้อย่างง่ายดายด้วยคำใด ๆ จากหัวเรื่อง การปฏิบัตินี้ไม่ธรรมดาอีกต่อไป

การค้นหาเพิ่มเติมเผยให้เห็นบทความที่เหลืออยู่ในการอ้างอิงซึ่งอธิบายเพิ่มเติมเกี่ยวกับวิธีที่หน้า Unix ใช้ดัชนีที่เปลี่ยนแปลง ดูเหมือนว่าประเด็นหลักที่พวกเขากำลังเผชิญอยู่ก็คือหน้าคนไม่มีหมายเลขอย่างต่อเนื่อง

จากสิ่งที่ฉันรวบรวมตอนนี้การฝึกฝนการใช้ดัชนีที่แปรเปลี่ยนได้กลายเป็นความลับและล้าสมัยไปแล้ว

อ้างอิง



5

@Joseph R. คำตอบที่ยอมรับได้ของประวัตินั้นดี แต่มาดูกันว่ามันจะถูกใช้อย่างไร

ptxสร้างดัชนีคำที่อนุญาต ("ptx") จากข้อความ ตัวอย่างเข้าใจง่ายที่สุด:

$ cat input
a
b
c

$ ptx -A -w 25 input
:1:            a b c
:2:        a   b c
:3:      a b   c

         ^^^^  ^ ^^^^-words to the input's right
         |     +-here is the actual input
         +-words to the input's left

ด้านขวาคุณจะเห็นคำที่แตกต่างจากอินพุตและบริบทคำซ้ายและขวาที่ล้อมรอบคำเหล่านั้น คำแรกคือ "a" มันเกิดขึ้นในบรรทัดที่หนึ่งและตามด้วย "b" และ "c" ทางด้านขวา คำที่สองคือ "b" ซึ่งเกิดขึ้นในบรรทัดที่สองโดยมี "a" ทางด้านซ้ายและ "c" ทางด้านขวา ในที่สุด "c" เกิดขึ้นในบรรทัดที่สามและดำเนินการโดย "a" และ "b"

เมื่อใช้สิ่งนี้คุณสามารถค้นหาหมายเลขบรรทัดและคำที่อยู่รอบ ๆ คำใด ๆ ในข้อความ ฟังดูเยอะมากgrepใช่มั้ย ความแตกต่างคือptxเข้าใจโครงสร้างของข้อความในหน่วยทางตรรกะของคำและประโยค สิ่งนี้ทำให้ผลลัพธ์เชิงบริบทptxมีความเกี่ยวข้องมากขึ้นเมื่อจัดการกับข้อความภาษาอังกฤษมากกว่า grep

ลองเปรียบเทียบptxและgrepใช้ย่อหน้าแรกของแท็บลอยด์อเมริกันของ James Ellroy :

$ cat text
America was never innocent. We popped our cherry on the boat over and looked back with no regrets. You can’t ascribe our fall from grace to any single event or set of circumstances. You can’t lose what you lacked at conception.

นี่คือgrep(ด้วยการจับคู่สีเปลี่ยนด้วยตนเองเพื่อล้อมรอบด้วย//):

$ grep -ni you text
1:America was never innocent. We popped our cherry on the boat over and looked back with no regrets. /You/ can’t ascribe our fall from grace to any single event or set of circumstances. /You/ can’t lose what /you/ lacked at conception.

ที่นี่ptx:

$ ptx -Afo <(echo you) text
text:1:        /back with no regrets.   You can’t ascribe our fall/
text:1:     /or set of circumstances.   You can’t lose what you/
text:1:      /. You can’t lose what   you lacked at conception.

เพราะgrepเป็นสายที่มุ่งเน้นและวรรคนี้เป็นหนึ่งในสายการส่งออกไม่ได้ค่อนข้างเป็นที่รัดกุมหรือที่เป็นประโยชน์เป็นผลผลิตจากgrepptx


1
เห็นได้ชัดว่านี่คือคำตอบสำหรับคำถาม
ไบท์ไบต์

1

คุณสามารถดูตัวอย่าง (เก่า) ของดัชนีที่เปลี่ยนแปลงทางออนไลน์ได้ที่นี่ (คลิกที่ลิงค์ดัชนีที่อนุญาตในกรอบด้านซ้ายบน)

ตามที่คนอื่นได้กล่าวถึงสิ่งนี้ไม่ได้เป็นเรื่องปกติอีกต่อไปเพราะความสามารถของเครื่องมือค้นหาและแอพการค้นหาที่กำหนดเอง


1

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

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