แยกไฟล์ข้อความเป็นบรรทัดสั้น ๆ เพื่ออ่าน?


10

มีโปรแกรมที่สามารถใช้ไฟล์ข้อความธรรมดาที่มีบรรทัดยาวและเพิ่มบรรทัดใหม่หลังจากจำนวนอักขระที่แน่นอนเพียงแค่แยกคำเพื่อให้อ่านได้หรือไม่? ตัวอย่างเช่นใช้สิ่งนี้:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vel lectus ac enim venenatis porttitor in et est. Curabitur ut eros quis risus consequat dictum a a lectus. Integer ut risus quis augue lobortis molestie vel id nibh. Aliquam sit amet mattis lorem, vel ornare felis. Donec pulvinar tempus lorem, at porta sem pretium ut. Cras ut lorem tincidunt, scelerisque nunc vitae, posuere augue. Vestibulum iaculis libero id congue ultrices. Nullam mauris ipsum, aliquet eget nisl non, venenatis euismod enim. Phasellus a eleifend velit. Aenean molestie venenatis turpis, consectetur convallis velit fringilla non.

และเปลี่ยนเป็น:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vel
lectus ac enim venenatis porttitor in et est. Curabitur ut eros quis
risus consequat dictum a a lectus. Integer ut risus quis augue lobortis
molestie vel id nibh. Aliquam sit amet mattis lorem, vel ornare felis.
Donec pulvinar tempus lorem, at porta sem pretium ut. Cras ut lorem
tincidunt, scelerisque nunc vitae, posuere augue. Vestibulum iaculis
libero id congue ultrices. Nullam mauris ipsum, aliquet eget nisl non,
venenatis euismod enim. Phasellus a eleifend velit. Aenean molestie
venenatis turpis, consectetur convallis velit fringilla non.

คำตอบ:


16

fmtคำสั่งฉันคิดว่าคุณกำลังมองหาที่เรียกว่า

$ fmt loremipsum.txt
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vel
lectus ac enim venenatis porttitor in et est. Curabitur ut eros quis risus
consequat dictum a a lectus. Integer ut risus quis augue lobortis molestie
vel id nibh. Aliquam sit amet mattis lorem, vel ornare felis. Donec
pulvinar tempus lorem, at porta sem pretium ut. Cras ut lorem tincidunt,
scelerisque nunc vitae, posuere augue. Vestibulum iaculis libero id congue
ultrices. Nullam mauris ipsum, aliquet eget nisl non, venenatis euismod
enim. Phasellus a eleifend velit. Aenean molestie venenatis turpis,
consectetur convallis velit fringilla non.

คุณสามารถควบคุมผลลัพธ์เช่นความกว้าง ฯลฯ

$ fmt --help
Usage: fmt [-WIDTH] [OPTION]... [FILE]...
Reformat each paragraph in the FILE(s), writing to standard output.
The option -WIDTH is an abbreviated form of --width=DIGITS.

Mandatory arguments to long options are mandatory for short options too.
  -c, --crown-margin        preserve indentation of first two lines
  -p, --prefix=STRING       reformat only lines beginning with STRING,
                              reattaching the prefix to reformatted lines
  -s, --split-only          split long lines, but do not refill
  -t, --tagged-paragraph    indentation of first line different from second
  -u, --uniform-spacing     one space between words, two after sentences
  -w, --width=WIDTH         maximum line width (default of 75 columns)
      --help     display this help and exit
      --version  output version information and exit

With no FILE, or when FILE is -, read standard input.

5

อาจเป็นตัวเลือกที่ดีที่สุดน่าจะเป็น text editor ส่วนใหญ่มีการห่อข้อความบางชนิด

หากคุณกำลังมองหาบางสิ่งที่ธรรมดากว่าคุณสามารถหาสิ่งที่sedคล้ายกัน ใส่เส้นยาวของคุณลงใน a loremipsum.txtแล้วปล่อยให้sedห่อหลังตัวอักษร 56-73 ตัวตามด้วยช่องว่างมันให้ผลลัพธ์ที่คุณต้องการ ...

$ sed -r -e 's/.{56,73} /&\n/g' loremipsum.txt
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vel 
lectus ac enim venenatis porttitor in et est. Curabitur ut eros quis 
risus consequat dictum a a lectus. Integer ut risus quis augue lobortis 
molestie vel id nibh. Aliquam sit amet mattis lorem, vel ornare felis. 
Donec pulvinar tempus lorem, at porta sem pretium ut. Cras ut lorem 
tincidunt, scelerisque nunc vitae, posuere augue. Vestibulum iaculis 
libero id congue ultrices. Nullam mauris ipsum, aliquet eget nisl non, 
venenatis euismod enim. Phasellus a eleifend velit. Aenean molestie 
venenatis turpis, consectetur convallis velit fringilla non.

... หรือคุณสามารถใช้fold -s -w 74 loremipsum.txtฉันเดาว่า ...


3

คุณสามารถไพพ์ข้อความของคุณfold -s -w 72เพื่อรับผลลัพธ์นั้น

หากระบบของคุณไม่มีfoldแต่ติดตั้งไพ ธ อนไว้คุณสามารถ:

cat /var/tmp/li.txt | cat /var/tmp/li.txt | python -c "import sys; from textwrap import fill; print fill(sys.stdin.read(), width=72)"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.