GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menggabungkan Semua Garis Yang Berakhir Dengan Karakter Backslash?

Menggunakan alat baris perintah umum seperti sed atau awk, apakah mungkin untuk menggabungkan semua baris yang diakhiri dengan karakter tertentu, seperti garis miring terbalik?

Misalnya diberikan file:

foo bar bash baz
dude happy

Saya ingin mendapatkan hasil ini:

foo bar bash baz
dude happy

Jawaban yang Diterima:

solusi sed yang lebih pendek dan sederhana:

sed  '
: again
/\$/ {
    N
    s/\n//
    t again
}
' textfile

atau one-liner jika menggunakan GNU sed :

sed ':x; /\$/ { N; s/\n//; tx }' textfile

Linux
  1. Bagaimana Cara Menghapus Semua Baris atau Baris yang Dikomentari dengan Pola Tertentu di vim?

  2. Bagaimana Cara Memastikan Bahwa String Diinterpolasi Ke Substitusi `sed` Lolos dari Semua Metachars?

  3. Bagaimana Cara Menginstal Ulang Semua Paket yang Terinstal Dengan Zypper?

  1. Bagaimana Cara Mengganti Semua String Dalam File Yang Dimulai Dengan Beberapa Awalan?

  2. Cara Menghapus Semua Baris File di Vim

  3. Bagaimana cara mengganti tanda kutip tunggal dengan karakter lain di sed?

  1. Cara menghapus \r karakter dengan sed

  2. Cara mengurangi baris (baris) dengan AWK

  3. Bagaimana cara mendaftar semua pengguna dengan root?