GNU/Linux >> Belajar Linux >  >> Linux

Sed One-liner Untuk Menghapus Segalanya Di Antara Sepasang Kurung?

Saya sedang mengerjakan beberapa teks yang penuh dengan hal-hal di antara tanda kurung [] yang tidak saya inginkan. Karena saya dapat menghapus tanda kurung sendiri, saya tidak memerlukan satu baris untuk melakukannya, tetapi saya membutuhkan satu baris yang akan menghapus semua yang ada di antaranya.

Bagaimana dengan tanda kurung () bukan tanda kurung?

Jawaban yang Diterima:

Ganti [some text] oleh string kosong. Dengan asumsi Anda tidak ingin mengurai tanda kurung bersarang, some text tidak boleh berisi tanda kurung.

sed -e 's/[[^][]*]//g'

Perhatikan bahwa dalam ekspresi kurung [^][] untuk mencocokkan apa pun selain [ atau ] , ] harus datang dulu. Biasanya ] akan mengakhiri rangkaian karakter, tetapi jika itu adalah karakter pertama dalam rangkaian (di sini, setelah ^ karakter pelengkap), ] berdiri sendiri.

Jika Anda ingin mengurai tanda kurung bersarang, atau jika teks tanda kurung dapat menjangkau beberapa baris, sed bukanlah alat yang tepat.


Linux
  1. Hapus spasi putih di setiap awal baris file, menggunakan bash

  2. Hapus baris kosong menggunakan sed

  3. Temukan dan ganti teks dalam file di antara rentang baris menggunakan sed

  1. Menggunakan Sed untuk Mencari &mengganti garis di antara rentang pola

  2. Ekstrak Nilai Antara Dua Pola Pencarian Pada Baris Yang Sama?

  3. Bagaimana cara menghapus file yang dibuat antara dua kali?

  1. Bagaimana Cara Menghapus Beberapa Baris Acak Dari File Teks Menggunakan Sed?

  2. Perbedaan Antara Sed Di Mac Osx Dan Sed "standar" Lainnya?

  3. Bagaimana Cara Menghapus N Baris Pertama Dari File Ascii Menggunakan Perintah Shell?