ฉันต้องการแสดงเนื้อหาของไฟล์ข้อความในบรรทัดคำสั่ง ไฟล์นี้มีเพียง 5-6 ตัวอักษร มีวิธีง่ายๆในการทำเช่นนี้หรือไม่?
ฉันต้องการแสดงเนื้อหาของไฟล์ข้อความในบรรทัดคำสั่ง ไฟล์นี้มีเพียง 5-6 ตัวอักษร มีวิธีง่ายๆในการทำเช่นนี้หรือไม่?
คำตอบ:
cat
cat
ตั้งแต่ไฟล์ของคุณเป็นระยะสั้นที่คุณสามารถใช้
cat filename
less
less
หากคุณต้องดูเนื้อหาของแฟ้มอีกต่อไปคุณสามารถใช้เพจเจอร์เช่น
less filename
คุณสามารถทำให้มีless
พฤติกรรมเช่นcat
เมื่อเรียกใช้กับไฟล์ขนาดเล็กและทำงานได้ตามปกติโดยการส่งผ่าน-F
และตั้ง-X
ค่าสถานะ
less -FX filename
less -FX
ฉันมีนามแฝงสำหรับ คุณสามารถทำให้ตัวเองเป็นเช่น:
alias aliasname='less -FX'
หากคุณเพิ่มนามแฝงในการกำหนดค่าเชลล์ของคุณคุณสามารถใช้มันได้ตลอดไป
od
หากไฟล์ของคุณมีอักขระที่แปลกหรือไม่สามารถพิมพ์ได้คุณสามารถใช้
od
เพื่อตรวจสอบอักขระได้ ตัวอย่างเช่น,
$ cat file
(ÐZ4 ?o=÷jï
$ od -c test
0000000 202 233 ( 320 K j 357 024 J 017 h Z 4 240 ? o
0000020 = 367 \n
0000023
less
มีข้อได้เปรียบที่ชัดเจนใด ๆ ที่เหนือกว่าโปรแกรมอื่น ๆ เช่นวิทยุติดตามตัวpg
หรือไม่ก็แค่ต้มลงไปตั้งค่าส่วนตัว?
more
และmost
!
แม้ว่าทุกคนใช้cat filename
ในการพิมพ์ข้อความไฟล์ไปออกวัตถุประสงค์แรกมาตรฐานคือนักโทษแมว enating จากหน้าคนแมว:
cat - เชื่อมไฟล์และพิมพ์บนเอาต์พุตมาตรฐาน
ตอนนี้ cat ใช้ได้สำหรับการพิมพ์ไฟล์ แต่มีทางเลือกอื่น:
echo "$(<filename)"
or
printf "%s" "$(<filename)"
( )
กลับค่าของการแสดงออกในกรณีนี้เนื้อหาของชื่อไฟล์ซึ่งจากนั้นจะมีการขยายตัว$
สำหรับหรือecho
printf
ปรับปรุง:
< filename
สิ่งนี้ทำในสิ่งที่คุณต้องการและจดจำได้ง่าย
นี่คือตัวอย่างที่ช่วยให้คุณเลือกไฟล์ในเมนูจากนั้นพิมพ์
#!/bin/bash
select fname in *;
do
# Don't forget the "" around the second part, else newlines won't be printed
printf "%s" "$(<$fname)"
break
done
สำหรับการอ่านเพิ่มเติม:
BashPitfalls - cat file | sed s / foo / bar /> file
Bash Reference - การเปลี่ยนเส้นทาง
< filename
เป็นสิ่งที่คุณต้องการ ... " กำลังทำให้เข้าใจผิด โดยรวมแม้ว่านี่เป็นการสนทนาที่น่าสนใจเกี่ยวกับทางเลือกอื่น แต่ฉันคิดว่าcat
ง่ายกว่า
< filename
ไม่แสดงเนื้อหาของไฟล์ แต่cat filename
ทำ
tee < filename
เช่นกัน
echo "$(<filename)"
bashism ไม่เพียงพอที่นี่
"$(<filename)"
ภายในกับก้อง ขอบคุณ ...
คุณสามารถใช้คำสั่งต่อไปนี้เพื่อแสดงเนื้อหาของไฟล์ข้อความ
ชื่อไฟล์แมว
เครื่องมือสำหรับจัดการไฟล์ข้อความบนยูนิกซ์เป็นคำสั่งพื้นฐานทุกวัน:
ในยูนิกซ์และลินุกซ์เพื่อพิมพ์เนื้อหาทั้งหมดในไฟล์
cat filename.txt
หรือ
more filename.txt
หรือ
less filename.txt
สำหรับสองสามบรรทัดสุดท้าย
tail filename.txt
สำหรับสองสามบรรทัดแรก
head filename.txt
ทางเลือกหนึ่งคือการใช้ more
เช่น more file.txt
less
แต่มันไม่ได้มีทุกคุณลักษณะที่เพิ่มขึ้นโดย
ตัวอย่างง่ายๆอย่างหนึ่งคือคุณไม่สามารถเลื่อนกลับในผลลัพธ์ โดยทั่วไปแล้วจะมีการใช้น้อยกว่ามาก - ซึ่งได้รับการกล่าวขานเพราะ
น้อยมาก
ฉันมักจะใช้$ less "your file here"
เพราะมันง่ายมากให้grep
คำสั่งแบบโต้ตอบในตัวและให้อินเทอร์เฟซที่ใช้งานง่ายซึ่งคุณสามารถเลื่อนด้วยปุ่มลูกศร
(รวมอยู่ในระบบ * nix เกือบทุกระบบ)
less
เป็นรุ่น overkill ของmore
(เปรียบเทียบman less
กับman more
) และสำหรับฉันมันมีสองคุณสมบัติที่น่ารำคาญ: 1) มันสลับไปที่บัฟเฟอร์หน้าจอทางเลือกเมื่อยกเลิกน้อยกว่าไฟล์ที่คุณเพิ่งดูหายไป 2) ที่ EOF คุณต้องพิมพ์อย่างชัดเจนq
(ฉันรู้ว่ามีตัวเลือกสำหรับสิ่งนี้) ดังนั้นหนึ่งในการกระทำแรกของฉันในสภาพแวดล้อมใหม่คือการตั้งค่าexport PAGER=/bin/more
ในโปรไฟล์ของฉันและใช้more
ตลอดเวลา
-X
ธง 2) ลองใช้-E
ธง less
มีmore
โหมดการจำลอง คุณสามารถเปิดใช้งานได้โดยการตั้งค่าLESS_IS_MORE
ตัวแปรสภาพแวดล้อม คุณสามารถเลื่อนขึ้นด้านบนในmore
โหมดการจำลอง
less
มันซับซ้อนเกินไป ความสามารถในการเรียกใช้คำสั่งภายนอกเป็นตัวอย่างที่สมบูรณ์แบบของความซับซ้อนที่มากเกินไป
more
และมีคุณสมบัติเพิ่มเติมมากมายมันทำงานได้ดีมาก
หากเป็นไฟล์ขนาดใหญ่และคุณต้องการค้นหาบางส่วนคุณสามารถใช้
cat filename | grep text_to_search -ni
นอกจากนี้คุณสามารถใช้โปรแกรมแก้ไข Vim แบบอินเทอร์แอ็คทีฟ (หรือโปรแกรมแก้ไข vi หากคุณไม่มี Vim):
vim filename
Or
vi filename
Vim / vi เป็นตัวแก้ไขที่ยอดเยี่ยมนอกจากนี้ยังสามารถใช้เป็นตัวอ่านใน "โหมดปกติ" หรือใช้ตัวเลือก -R มันมีคุณสมบัติมากมายที่จะช่วยคุณในการเรียกดูไฟล์
vim -R
view
แต่เก็บไว้ในใจว่ามันไม่ชอบการเปลี่ยนเส้นทางตามที่กล่าวไว้ในxargs และ vi -“การป้อนข้อมูลไม่ได้มาจากขั้ว”
ใช้คำสั่ง cat เพื่อแสดงเนื้อหาของชื่อไฟล์ ชื่อไฟล์แมว
ใช้คำสั่ง vim เพื่อแก้ไขไฟล์ ชื่อไฟล์เป็นกลุ่ม
sed -n l file
มีประโยชน์เช่นกัน