ฉันจะเขียนทุกบรรทัดจากน้อยไปยังไฟล์ได้อย่างไร?


76

ฉันได้ไพพ์คำสั่งlessและตอนนี้ฉันต้องการบันทึกผลลัพธ์ของคำสั่งไปยังไฟล์ ฉันจะทำอย่างไร

ในกรณีนี้ผมไม่ต้องการที่จะใช้ผมต้องการแก้ปัญหาโดยตรงจากน้อยเพื่อที่ฉันจะได้ไม่ต้องเรียกคำสั่งยาวทำงานถ้าฉันลืมที่จะใช้teetee

คำถามนี้คล้ายกับคำถามนี้ความแตกต่างเพียงอย่างเดียวคือฉันต้องการบันทึกทุกบรรทัดไม่ใช่ชุดย่อย: เขียนบรรทัดลงในไฟล์จากน้อยกว่า

คำตอบ:


106

จากlessพิมพ์แล้วพิมพ์ชื่อไฟล์ที่คุณต้องการจะบันทึกลงแล้วs จากหน้าภายใต้:Enter
manCOMMANDS

s filename
      Save the input to a file.  This only works if the input is a pipe, not an ordinary file.

manหน้ายังระบุว่าsคำสั่งอาจไม่พร้อมใช้งานทั้งนี้ขึ้นอยู่กับการติดตั้งเฉพาะของคุณ ในกรณีนั้นคุณสามารถไปที่บรรทัดที่ 1 ด้วย:

g or < or ESC-<
      Go to line N in the file, default 1 (beginning of file).

และไพพ์เนื้อหาทั้งหมดcatด้วย:

| <m> shell-command
      <m> represents any mark letter. Pipes a section of the input file to the
      given shell command. The section of the file to be piped is between the
      first line on the current screen and the position marked by the letter. 
      <m> may also be ^ or $ to indicate beginning or end of file respectively.

ดังนั้นทั้ง:

g|$cat > filename

หรือ:

<|$cat > filename

เช่นชนิดgหรือ<( กรัมหรือน้อยกว่า ) | $( ท่อแล้วดอลล่า ) แล้วและcat > filename สิ่งนี้จะทำงานได้ไม่ว่าอินพุตจะเป็นไพพ์หรือไฟล์ธรรมดาEnter


0

วิธีหนึ่งในการทำโดยไม่มีteeดังต่อไปนี้
less /path/to/input > /path/to/output
ด้านบนจะเขียนทับ/path/to/outputหากมีอยู่แล้ว

ที่จะทำเช่นเดียวกัน แต่ผนวก/path/to/outputเป็นดังนี้
less /path/to/input >> /path/to/output

หากต้องการบันทึกข้อความlessหลังจากเปิดแล้วคุณสามารถใช้คุณสมบัติบันทึกไฟล์ได้
เมื่ออยู่ในกดless sจากนั้นพิมพ์ชื่อไฟล์
หากคุณใช้ไพพ์ไฟล์จะถูกเขียนไปยัง Working Directory โดยอัตโนมัติ
หากคุณไม่ได้ใช้ไพพ์คุณจะเปิดไฟล์พร้อมข้อความ (ซึ่งคุณสามารถบันทึกได้)
ฉันเชื่อว่าไฟล์จะเปิดvimขึ้น


4
ฉันต้องการแก้ปัญหาจากเมื่อฉันได้เปิดแล้วless less
Flimm

ฉันเห็น. ขอโทษที่เข้าใจผิด. ฉันอัพเดตคำตอบแล้ว
nehcsivart

-2

คุณไม่ได้ใช้น้อยลงคุณใช้ทีจากนั้นต่อทีไปที่น้อยกว่า

./program | tee program.out | less


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