Apakah ada cara untuk mensimulasikan perintah * nix tail pada baris perintah Windows? Saya memiliki file dan saya ingin cara untuk memotong n baris pertama teks. Sebagai contoh:
D:\>type file.txt
line one
line two
line three
D:\>*[call to tail]* > result.txt
D:\>type result.txt
line two
line three
windows
command-line
Chris Smith
sumber
sumber
head
hanya menampilkan n baris pertama, bukan mengosongkannya?head
perintah gaya Unix , tetapi keluaran yang diinginkan tampak seperti itutail
. Sepertinya jawabannya adalah tentanghead
dan bukantail
.tail
, namun judulnya mengatakanhead
Jawaban:
Tidak ada padanan persis. Namun ada perintah DOS asli "more" yang memiliki opsi + n yang akan mulai mengeluarkan file setelah baris ke-n:
Perintah DOS:
Perintah di atas akan menampilkan semuanya setelah 2 baris pertama.
Ini sebenarnya kebalikan dari kepala Unix :
Konsol Unix:
Perintah di atas hanya akan mencetak 2 baris pertama file.
sumber
tail
mulai menghitung dari akhir file. Jadi,tail -2
akan mencetak dua baris terakhir.-2
bukan negatif. Ini hanya versi singkatan dari-n 2
(jumlah baris). Sayangnya, terlalu banyak implementasitail
yang tidak mendukung-2
, sehingga sangat tidak konsisten denganhead
implementasi yang mendukung . Itu sudah terlalu sering membuatku kesal.head -n -2
mana yang berbedahead -n 2
. Tetapi dengan ekor, yang terakhir tidak ada.JIKA Anda menginstal Windows PowerShell (saya pikir itu termasuk sejak XP), Anda dapat menjalankan dari cmd.exe:
Perintah Kepala:
Perintah Ekor:
atau, langsung dari PowerShell:
memperbarui
PowerShell 3.0 (Windows 8 dan lebih tinggi) menambahkan
Tail
perintah dengan aliasLast
.Head
danFirst
aliasTotalCount
juga ditambahkan.Jadi, perintah dapat ditulis ulang sebagai
sumber
head
bukantail
?Get-Content
memiliki perintah ekor. Misalnya,Get-content -Tail 5 file.txt
akan mencetak lima baris terakhir file.txt. Terima kasih telah memperbarui jawaban Anda btw.dimana n = jumlah baris yang akan ditampilkan. Bekerja cepat dan persis seperti
head
perintah.sumber
Anda bisa mendapatkan CoreUtils dari GnuWin32 , yang merupakan kumpulan alat unix standar, yang di-porting ke Windows.
Itu antara lain berisi kepala.
sumber
Ini adalah peretasan total tetapi jika itu adalah file besar yang ingin Anda periksa format, tajuk, dll. Dan Anda sedang mencari solusi, Anda selalu dapat mengarahkan keluaran 'lebih banyak' ke file baru dan CTRL-C segera. Baris keluaran tidak dapat dikontrol secara tepat dan Anda kemungkinan besar akan membunuhnya di tengah baris keluaran tetapi ini cara yang murah untuk mengambil sedikit dari file yang tidak dapat digunakan.
Ex.
sumber
Nah, ini akan melakukannya , tapi secepat yang terlihat (kira-kira O (n * m), di mana n adalah jumlah baris yang akan ditampilkan dan m adalah jumlah total baris dalam file):
Di mana "10" adalah jumlah baris yang ingin Anda cetak, dan "nama file" adalah nama file.
sumber
head
.(expr) > out.txt
- saat mengirimkan hasil ke file, atau Anda hanya akan mendapatkan baris terakhir. Atau tambahkan -expr >> out.txt
.Powershell:
sumber
Saat menggunakan lebih banyak + n yang telah disebutkan Matt, untuk menghindari jeda di file yang panjang, coba ini:
lainnya +1 myfile.txt> con
Ketika Anda mengarahkan output dari lebih banyak, itu tidak berhenti - dan di sini Anda mengarahkan ke konsol. Anda juga dapat mengarahkan ke beberapa file lain seperti ini tanpa jeda lebih banyak jika itu hasil akhir yang Anda inginkan. Gunakan> untuk mengalihkan ke file dan menimpanya jika sudah ada, atau >> untuk menambahkan ke file yang sudah ada. (Dapat digunakan untuk mengalihkan ke penipu.)
sumber
Anda juga dapat menggunakan Git bash di mana kepala dan ekor juga ditiru
sumber
Get-content -Tail n file.txt
dengan PowerShell adalah satu-satunya hal yang mendekatitail
di linux.Yang
Get-Content *filename* | Select-Object -last *n*
disarankan di atas memuat / mengurai semuanya. Tak perlu dikatakan, itu tidak senang dengan file log 10GB saya ...-Tail
Opsi ini dimulai pada akhir file.sumber
Jika Anda menginginkan perintah head, salah satu cara mudah untuk mendapatkannya adalah dengan menginstal Cygwin. Maka Anda akan memiliki semua alat UNIX yang Anda inginkan.
Jika itu bukan solusi yang baik, maka Anda dapat mencoba menggunakan findstr dan melakukan pencarian untuk indikator akhir baris.
findstr di MSDN: http://technet.microsoft.com/en-us/library/bb490907.aspx
sumber
Berikut adalah perintah kepala asli cepat yang memberi Anda 9 baris pertama di DOS.
2 karakter pertama di setiap baris akan menjadi nomor baris.
sumber
Ada kit sumber daya yang dapat diunduh dari sini: http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displayLang=en
Ini berisi alat tail.exe tetapi hanya kompatibel dengan beberapa versi Windows
(Disalin dari posting ini: Perintah tail untuk windows )
sumber
di PS coba gunakan perintah:
Perintah ini juga dapat disambungkan.
Contoh untuk mendapatkan baris pertama:
atau untuk mendapatkan baris pertama:
sumber
FWIW, bagi mereka yang hanya perlu memotong sejumlah catatan tak tentu dari kepala berkas, lebih> bekerja dengan baik. Ini berguna hanya untuk memiliki file yang lebih kecil untuk dikerjakan pada tahap awal pengembangan sesuatu.
sumber
Saya belum mencoba mengekstrak rentang, tetapi saya bisa mendapatkan baris menggunakan perintah DOS berikut:
Karena kebanyakan file berisi spasi, perintah ini menarik setiap baris dari semua file LOG dan pada dasarnya menomori mereka mulai dari 1 untuk setiap file. Hasil bernomor kemudian disalurkan ke
FIND
perintah kedua yang mencari baris yang diberi tag sebagai nomor 6.sumber
Ada
head
utilitas gratis di halaman ini yang dapat Anda gunakan. Saya belum mencobanya.sumber
itu akan mengembalikan baris pertama file Anda di cmd Windows dalam variabel% baris%.
sumber
Sebagai jawaban kontemporer, jika menjalankan Windows 10 Anda dapat menggunakan "Linux Subsystem for Windows".
https://docs.microsoft.com/en-us/windows/wsl/install-win10
Ini akan memungkinkan Anda untuk menjalankan perintah linux asli dari dalam jendela dan dengan demikian menjalankan ekor persis seperti yang Anda lakukan di linux.
sumber
Saya tidak berpikir ada jalan keluar dari kotak. Tidak ada perintah seperti itu di DOS dan file batch sangat terbatas untuk mensimulasikannya (tanpa kesulitan besar).
sumber
Peringatan, menggunakan file batch untuk, token, dan kemampuan delims pada input teks yang tidak dikenal bisa menjadi bencana karena interpretasi khusus dari karakter seperti &,!, <, Dll. Metode tersebut harus disediakan hanya untuk teks yang dapat diprediksi.
sumber