ฉันจะอ่านบรรทัดแรกของไฟล์โดยใช้ cat ได้อย่างไร


คำตอบ:


378

catคุณไม่จำเป็นต้อง

head -1 file

จะทำงานได้ดี


65
+1 คุณต้องการหัวไม่ใช่แมวทั้งหมด: P (หางคำสั่งเป็นส่วนหนึ่งของการทุบตีปุนเช่นกัน)
SparK

ไม่headอ่านไฟล์ทั้งหมดและตัดมันหรือไม่ก็อ่านเพียง 1 บรรทัด?
CMCDragonkai

@CMCDragonkai ผมคิดว่าคุณสามารถตรวจสอบแหล่งที่มา
Carl Norum

2
ฉันเดาว่ามันจะอ่านได้แค่บรรทัดแรกเท่านั้น - มันเปิดไฟล์หลายร้อยเมกะไบต์เป็นมิลลิวินาที
Brian Haak

1
... เข้าใจแล้ว! cat <(head file1) <(head file2). ที่มา
James Owers



21

คุณสามารถใช้แต่มันอาจจะดีกว่าที่จะใช้หัวโดยตรงในขณะที่cat file.txt | head -1head -1 file.txt


16

catนี้อาจไม่ได้เป็นไปได้ด้วย มีเหตุผลที่คุณต้องใช้catหรือไม่?

หากคุณเพียงแค่ต้องทำมันด้วยคำสั่ง bash สิ่งนี้จะได้ผลสำหรับคุณ:

head -n 1 file.txt

9

catคนเดียวอาจเป็นไปไม่ได้ แต่ถ้าคุณไม่ต้องการใช้งานheadนี้:

 cat <file> | awk 'NR == 1'

2
ฉันคิดว่ามันโง่ที่จะเรียกออกมาเป็น 'การใช้งานที่ไร้ประโยชน์ของแมว' ในบรรทัดที่ออกแบบมาเพื่อการใช้งานcatไม่ได้
jkerian

วิธีนี้ดีมากเพราะคุณสามารถเลือกสายที่ต้องการได้
desgua

3
@desgua awkยอดเยี่ยม แต่คุณไม่ต้องการcatที่นี่ awk 'NR == 2 {print $0}' <file>ทำสิ่งเดียวกัน (และอื่น ๆ อีกมากมายถ้าคุณเรียนรู้เล็ก ๆ น้อย ๆawk.
เอริควิลสัน

5

ฉันประหลาดใจที่คำถามนี้มีมานานเท่าที่มีอยู่และยังไม่มีใครได้เตรียมวิธีการติดตั้งมาพร้อมกับไฟล์ในตัวไว้ล่วงหน้า

IFS= read -r first_line <file

... วางบรรทัดแรกของไฟล์ในตัวแปรที่ขยายโดย"$first_line"ง่ายเหมือนกับที่

นอกจากนี้เนื่องจากreadถูกสร้างขึ้นในทุบตีและการใช้งานนี้ต้องไม่มี subshell ก็มีประสิทธิภาพมากขึ้นอย่างมีนัยสำคัญกว่าวิธีที่เกี่ยวข้องกับกระบวนการย่อยเช่นหรือheadawk


สิ่งที่เป็นIFS=ส่วนหนึ่งที่จุดเริ่มต้น?
Florian Castellane

ของฉันไม่ดีนี่คือคำอธิบาย: unix.stackexchange.com/questions/184863/…
Florian Castellane

ขวา; ในกรณีนี้การล้างIFSจะป้องกันช่องว่างนำหน้าและต่อท้ายไม่ให้ถูกดึงออกจากสตริงที่อ่าน
Charles Duffy

3

คุณไม่ต้องการคำสั่งภายนอกถ้าคุณมี bash v4 +

< file.txt mapfile -n1 && echo ${MAPFILE[0]}

หรือถ้าคุณต้องการจริงๆ cat

cat file.txt | mapfile -n1 && echo ${MAPFILE[0]}

:)


2

ใช้คำสั่งด้านล่างเพื่อรับแถวแรกจากไฟล์ CSV หรือรูปแบบไฟล์ใด ๆ

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