Saya perlu menghapus 42 baris pertama dari dump SQL 2GB.
Saya tahu saya bisa melihat baris pertama menggunakan:
head -n 44 dump.sql
Tetapi apakah ada cara untuk mengedit atau menghapusnya?
Saya perlu menghapus 42 baris pertama dari dump SQL 2GB.
Saya tahu saya bisa melihat baris pertama menggunakan:
head -n 44 dump.sql
Tetapi apakah ada cara untuk mengedit atau menghapusnya?
Jawaban:
Jika Anda hanya ingin melihat baris dari ke-43 Anda dapat menggunakan
tail -n +43 dump.sql
The +tanda penting - tanpa itu, tailakan mencetak terakhir 43 garis gantinya. Atau dengan 'sed'
sed 1,42d dump.sql
Jika Anda ingin benar-benar menghapus 42 baris pertama dari file asli maka Anda dapat membuat dan melakukan perubahan di tempat dengan -iopsi
sed -i 1,42d dump.sql
sed -i 1,50000000d 17GigFilemembuat file temp sedXYZyang mengkonsumsi lebih banyak gigabytes. Apakah ada pendekatan tanpa file temp?
tail -n +43dan head -n 44seperti yang disebutkan dalam pertanyaan?
Ini tampaknya yang paling mudah:
sed '1,42d' test.sql > test2.sql
Hapus baris 1-42 dari test.sql dan simpan sebagai test2.sql
Anda dapat menggunakan Vim dalam mode Ex:
ex -s -c '1d42|x' dump.sql
1 pindah ke baris pertama
42 pilih 42 garis
d menghapus
x Simpan dan tutup
Maaf, saya tidak bisa memberikan kode aktual kepada Anda saat ini. Namun, cobalah melihat sesuatu di sepanjang garis
tail -n arcv(`wc -l`) -44
Apa yang harus dilakukan (setelah diformat dengan benar) adalah menghitung jumlah baris dalam file (wc-l), kurangi 44 dari itu (-44) dan kemudian cetak semuanya mulai dengan baris ke-45 dalam file.
Semoga ini bisa membantu dan semoga berhasil.
wc -lfile, Anda memprosesnya dua kali, sedangkan sedatau tailmemprosesnya hanya sekali.
Karena sedperbedaan di Linux dan Mac, saya memutuskan untuk menggunakan tail -n +43 dump.sql > dump.sqlformat.
tail. Saya menemukan berkali-kali sesuatu yang baru untuk dipelajari dari jawaban Anda. Terima kasih.