ฉันต้องการแสดงเนื้อหาของไฟล์ข้อความในบรรทัดคำสั่ง ไฟล์นี้มีเพียง 5-6 ตัวอักษร มีวิธีง่ายๆในการทำเช่นนี้หรือไม่?
ฉันต้องการแสดงเนื้อหาของไฟล์ข้อความในบรรทัดคำสั่ง ไฟล์นี้มีเพียง 5-6 ตัวอักษร มีวิธีง่ายๆในการทำเช่นนี้หรือไม่?
คำตอบ:
catcatตั้งแต่ไฟล์ของคุณเป็นระยะสั้นที่คุณสามารถใช้
cat filename
lesslessหากคุณต้องดูเนื้อหาของแฟ้มอีกต่อไปคุณสามารถใช้เพจเจอร์เช่น
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)"
( )กลับค่าของการแสดงออกในกรณีนี้เนื้อหาของชื่อไฟล์ซึ่งจากนั้นจะมีการขยายตัว$สำหรับหรือechoprintf
ปรับปรุง:
< 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มีประโยชน์เช่นกัน