Tampilkan Navigasi Ponsel

Selasa, 21 Februari 2017

, , , , , ,

Unix: Cara menghapus baris pertama dari file besar

Habib Bin Hilal - 12.06
Hari ini saya memperoleh masalah dengan salah satu berkas file dengan ukuran cukup besar, kisaran Gb. Ada kesalahan pada berkas besar tersebut, yaitu ada 1 baris yang tidak seharusnya muncul di urutan pertama. Meskipun hanya 1 baris yang salah, untuk menghapus baris tersebut tidaklah mudah.

Sekilas, pemecahan masalah tersebut gampang: buka filenya, delete atau hapus baris pertama, dan simpan kembali. Ternyata tidak semudah itu. Membuka berkas ukuran gigabyte akan memerlukan waktu sangat lama dan mungkin membuat crash komputer.

Solusinya adalah menggunakan program bawaan pada sistem operasi Unix, atau biasa dikenal dengan 'bash script' seperti sed atau tail.

sed -i -e "1d" $FILE

Script, atau command di atas cukup efektif untuk membuang baris pertama (parameter "1d") dari berkas $FILE secara langsung (parameter -i).

Ada alternatif cara menghapus baris pertama yang lebih cepat dari command di atas dengan menggunakan tail.

tail -n +2 "$FILE"

Parameter -n pada tail memberi perintah untuk melihat beberapa baris terakhir suatu berkas. Dengan memasukkan tanda plus, tail akan menampilkan semua baris kecuali baris x-1 yang pertama. Perintah tail -n +1 akan menampilkan semua baris dalam berkas.
Mungkin anda akan berusaha menggunakan perintah di bawah ini untuk mengedit file anda:

tail -n +2 "$FILE" > "$FILE"

Itu akan menghasilkan berkas kosong, alias menghapus semua isi berkas anda. Alasannya adalah tanda > akan diksekusi oleh komputer sebelum perintah tail. Shell akan menghapus $FILE sebelum menjalankan tail.

Jika anda ingin menghapus baris pertama, anda harus menggunakan perintah berikut ini:

tail -n +2 "$FILE" > "$FILE.tmp" && mv "$FILE.tmp" "$FILE"


Perintah && akan menjamin bahwa berkas tidak diganti jika ada yang tidak beres saat menjalankan perintah sebelumnya.

4 comments:

  1. I can read all the opinions of others as well as i gained information to each and everyone here on your site. Just keep on going dude. Check over here:

    먹튀검증
    메이저사이트
    바카라
    토토

    BalasHapus
  2. People should know these tips because you have great content! Thanks anyway!

    토토사이트
    바카라
    토토

    BalasHapus
  3. It was very easy to find my way around and very user friendly Good job to your designer and dev of your site. I hope your rate was doing well.

    majortotosite
    oncasinosite
    totopick

    BalasHapus
  4. What a helpful post. This blog has a lot of interesting stuff, and the post is quite helpful. Thank you for sharing your knowledge and expertise.
    Indian Divorce Lawyer Middlesex NJ
    Indian Divorce Lawyer Iselin NJ

    BalasHapus