Pertanyaan Tampilkan beberapa baris pertama file


Saya memiliki folder dengan beberapa file di dalamnya. Saya ingin menampilkan yang berikut:

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

dll. Bagaimana saya bisa melakukannya?


22
2018-03-04 22:15


asal




Jawaban:


Anda menggunakan head perintah untuk melakukan ini, dengan argumen -n dengan jumlah baris dari setiap file, seperti ini:

head -n3 *

atau

head -n3 *.txt

Ini juga berfungsi untuk satu file:

head -n3 filename.txt

45
2018-03-04 22:54



Sama seperti komentar (saya LAKUKAN seperti bersih dari solusi yang diusulkan), perintah ini tidak akan menulis nama file, tetapi hanya baris pertama dari file - luri
@ luri - Benarkah? Di Ubuntu head versi head (GNU coreutils) 8.5 secara default akan. Atau mungkin Anda menggunakan alias head --quiet? - arrange
@ luri: Itu melakukan output nama file untuk saya juga. - David Oneill
Sial ya ... itu alias (--silent, sebenarnya, bukannya - tenang) dan aku tidak tahu kenapa. Dua jawaban dalam satu untuk mengatur;) - luri


kepala

Kau gunakan head dengan -n pilihan.

head -n 10 FILE

Ini akan mencetak sepuluh baris pertama file.

Variasi lain yang berguna adalah -n -NUMBER.

head -n -10 FILE

Ini akan mencetak semua kecuali sepuluh baris terakhir dari sebuah file.

Untuk mengatasi masalah Anda dan mendapatkan hasil yang Anda inginkan, Anda dapat melakukan hal berikut.

basename * && head -n NUMBER *

atau

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

Ini akan membuat Anda mengikuti output:

FILENAME
LINE ONE
LINE TWO
LINE THREE

12
2018-03-04 22:23





Ini akan melakukan apa yang Anda inginkan, harapan:

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

-print akan menunjukkan nama file dan sisanya (dari -exec) akan menampilkan 3 baris pertama dari setiap file

Ubah nomor sesuai kebutuhan Anda ...


4
2018-03-04 22:34





Untuk menambahkan nama file ke output head, gunakan 'head -v'. Jadi 'kepala -vn 3 * .html' memberi saya:

# 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>

1
2018-03-05 02:18