28Jun

Cara Hapus Lines dari Tengah File Menggunakan Terminal Linux

Saat Anda mengelola server Anda sendiri, salah satu hal yang perlu Anda lakukan secara semi-reguler adalah mengekstrak barang dari tengah file. Mungkin itu file log, atau Anda perlu tambahan satu meja dari tengah file cadangan MySQL Anda, seperti yang saya lakukan.

Untuk mengetahui nomor baris, perintah grep -n sederhana melakukan pekerjaan( argumen-n mengeluarkan nomor baris).Hal ini mempermudah untuk mengetahui apa yang perlu saya ekstrak.

grep -n wp_posts howtogeekdb010114.bak |lebih banyak hasil

dalam hal seperti ini, yang menunjukkan nomor garis di sisi kiri output. Piping semuanya menjadi "lebih" memastikan bahwa Anda dapat melihat baris pertama tanpa bergulir. Sekarang Anda punya nomor baris untuk memulai dengan, dan mungkin yang terakhir.

4160: - Struktur tabel untuk tabel `wp_posts` 4163: DROP TABLE IF EXISTS` wp_posts`;4166: CREATE TABLE `wp_posts`( 4203: - Dumping data untuk tabel` wp_posts` 4206: LOCK TABLES `wp_posts` TULIS; 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 05:07:23', '2006-09-11

Anda bisa, tentu saja, hanya mengalirkan output dari grep ke file lain, seperti ini:

grep nama file kata kunci.txt & gt; outputfile

Dalam kasus saya, itu tidak mau bekerja, karena saya tidak dapat mengimpor cadangan yang dihasilkan karena beberapa alasan. Jadi, saya menemukan cara lain untuk mengekstrak garis menggunakan sed, dan metode ini berhasilPada dasarnya sintaksnya seperti ini, pastikan untuk menggunakan argumen -n, dan sertakan "p" setelah nomor baris kedua.

sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp 'filename & gt; outputfilename

Beberapa cara lain untuk menarik garis tertentu di tengah file? Anda bisa menggunakan "kepala"Perintah dengan nomor + argumen untuk hanya membaca melalui baris x pertama dari sebuah file, dan kemudian menggunakan ekor untuk mengekstrak baris 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 baris menggunakan kepala atau ekor.

Atau anda bisa menggunakan sed.