แสดงสองสามบรรทัดแรกของไฟล์


24

ฉันมีโฟลเดอร์ที่มีไฟล์ค่อนข้างน้อย ฉันต้องการที่จะแสดงต่อไปนี้:

filename_1
first line of file1
second line of file1
third line of file1
filename_2
first line of file2
second line of file2
third line of file2
filename_3
first line of file3
second line of file3
third line of file3

เป็นต้นฉันจะทำอย่างไร

คำตอบ:


54

คุณใช้headคำสั่งเพื่อทำสิ่งนี้โดยใช้อาร์กิวเมนต์ -n พร้อมจำนวนบรรทัดจากแต่ละไฟล์ดังนี้:

head -n3 *

หรือ

head -n3 *.txt

สิ่งนี้ใช้ได้กับไฟล์เดียว:

head -n3 filename.txt

เช่นเดียวกับความคิดเห็น (ฉันชอบความสะอาดของวิธีแก้ปัญหาที่เสนอ) คำสั่งนี้จะไม่เขียนชื่อไฟล์ แต่เพียงบรรทัดแรกของไฟล์
luri

@luri - จริงเหรอ? ในheadรุ่นอูบุนตูhead (GNU coreutils) 8.5ก็เป็นค่าเริ่มต้น หรือบางทีคุณอาจกำลังใช้นามแฝงhead --quiet?
จัด

@luri: มันก็ส่งชื่อไฟล์ให้ฉันด้วย
David Oneill

ประณามใช่ ... มันเป็นนามแฝง (- เงียบจริง ๆ แล้ว - เงียบ) และฉันไม่รู้ว่าทำไม คำตอบสองข้อในหนึ่งข้อเพื่อเตรียมการ)
luri

12

หัว

คุณใช้headกับ-nตัวเลือก

head -n 10 FILE

วิธีนี้จะพิมพ์ไฟล์สิบบรรทัดแรก

-n -NUMBERอีกรูปแบบที่มีประโยชน์จะเป็น

head -n -10 FILE

สิ่งนี้จะพิมพ์ทั้งหมดยกเว้นสิบบรรทัดสุดท้ายของไฟล์

เพื่อแก้ปัญหาของคุณและรับผลลัพธ์ที่ต้องการคุณสามารถทำสิ่งต่อไปนี้

basename * && head -n NUMBER *

หรือ

basename *.FILETYPE && head -n NUMBER *.FILETYPE

คุณจะได้ผลลัพธ์ต่อไปนี้:

FILENAME
LINE ONE
LINE TWO
LINE THREE

4

สิ่งนี้จะทำในสิ่งที่คุณต้องการมีความหวัง:

find . -print -exec head {} -n 3 \;

-printจะแสดงชื่อไฟล์และส่วนที่เหลือ (จาก - exec) จะแสดง 3 บรรทัดแรกของแต่ละไฟล์

เปลี่ยนหมายเลขตามความต้องการของคุณ ...


1

ในการเพิ่มชื่อไฟล์ในเอาต์พุตเฮดให้ใช้ 'head -v' ดังนั้น 'head -vn 3 * .html' ให้ฉัน:

# head -vn 3 *.html
==> WebInfo.html <==
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

==> convert.html <==
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

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