Cara Menghapus Garis dari Tengah File Menggunakan Terminal Linux

Cara Menghapus Garis dari Tengah File Menggunakan Terminal Linux
Cara Menghapus Garis dari Tengah File Menggunakan Terminal Linux

Video: Cara Menghapus Garis dari Tengah File Menggunakan Terminal Linux

Video: Cara Menghapus Garis dari Tengah File Menggunakan Terminal Linux
Video: GOKIL! Cobain Install Steam OS di Laptop - Makin NGEBUT? - YouTube 2024, November
Anonim
Ketika Anda mengelola server Anda sendiri, salah satu hal yang pada akhirnya perlu Anda lakukan secara semi-reguler adalah mengekstrak barang dari tengah-tengah file. Mungkin itu file log, atau Anda perlu menambahkan satu tabel dari bagian tengah file cadangan MySQL Anda, seperti yang saya lakukan.
Ketika Anda mengelola server Anda sendiri, salah satu hal yang pada akhirnya perlu Anda lakukan secara semi-reguler adalah mengekstrak barang dari tengah-tengah file. Mungkin itu file log, atau Anda perlu menambahkan satu tabel dari bagian tengah file cadangan MySQL Anda, seperti yang saya lakukan.

Untuk mengetahui nomor baris, perintah grep -n sederhana melakukan pekerjaan (argumen -n menghasilkan angka garis). Ini memudahkan untuk mencari tahu apa yang perlu saya ekstrak.

grep -n wp_posts howtogeekdb010114.bak | more

Hasil dalam sesuatu seperti ini, yang menunjukkan nomor baris di sebelah kiri output. Memoles semuanya menjadi "lebih" akan memastikan bahwa Anda dapat melihat baris pertama tanpa menggulir. Sekarang Anda sudah mendapatkan nomor baris untuk memulai, dan mungkin yang harus diakhiri.

4160:-- Table structure for table `wp_posts` 4163:DROP TABLE IF EXISTS `wp_posts`; 4166:CREATE TABLE `wp_posts` ( 4203:-- Dumping data for table `wp_posts` 4206:LOCK TABLES `wp_posts` WRITE; 4207:/*!40000 ALTER TABLE `wp_posts` DISABLE KEYS */; 4208:INSERT INTO `wp_posts` VALUES (1,2,'2006-09-11 05:07:23','2006-09-11

Anda dapat, tentu saja, hanya menyalurkan output dari grep ke file lain, seperti ini:

grep keyword filename.txt > outputfile

Dalam kasus saya, itu tidak ingin berfungsi, karena saya tidak dapat mengimpor cadangan yang dihasilkan untuk beberapa alasan. Jadi, saya menemukan cara yang berbeda untuk mengekstrak garis menggunakan sed, dan metode ini berhasil.

sed -n '4160,4209p' howtogeekdb0101140201.bak > outputfile

Pada dasarnya sintaks seperti ini, pastikan untuk menggunakan argumen -n, dan sertakan "p" setelah nomor baris kedua.

sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' filename > outputfilename

Beberapa cara lain Anda dapat menarik garis-garis tertentu di tengah-tengah file? Anda bisa menggunakan perintah "head" dengan argumen nomor + untuk hanya membaca x baris pertama file, dan kemudian menggunakan ekor untuk mengekstrak garis-garis tersebut. Bukan pilihan terbaik, banyak overhead. Pilihan yang lebih sederhana? Anda dapat menggunakan perintah split untuk mengubah file menjadi beberapa file tepat pada nomor baris yang Anda inginkan, dan kemudian mengekstrak garis menggunakan kepala atau ekor.

Atau Anda bisa menggunakan sed.

Direkomendasikan: