Sed - Tips dan teknik
= [Sed] Tips dan cara
Pergantian
Pengganti "foo" dengan "bar" pada setiap baris
Hanya kejadian pertama
sed '/ foo / bar /'
Untuk kes ke-3 sahaja
sed '/ foo / bar / 3'
Semua kejadian
sed '/ foo / bar / g'
Sebelum kejadian terakhir
sed '/ \ (. * \) foo \ (. * foo \) / \ 1bar \ 2 /'
Hanya kes terakhir
sed's / \ (. * \) foo / \ 1bar / '
Pengganti "foo" dengan "bar" hanya baris mengandungi "plop"
sed '/ plop / s / foo / bar / g'
Pengganti "foo" dengan "bar" kecuali garisan yang mengandungi "plop"
sed '/ plop /! s / foo / bar / g '
Gantikan "Foo" atau "foo" dengan "bar" pada setiap baris
sed 's / [Ff] oo / bar / g'
Gantikan "biru" atau "putih" atau "merah" dengan "hijau"
sed \ / biru \ | kosong \ | merah / hijau / g '
Paparan
Baris 1 (kepala -1)
sed q
5 baris pertama (kepala -5)
sed'5 q '
sed'1, 5! d '
Baris terakhir (ekor -1)
sed-n '$ p'
sed '$! d "
5 baris terakhir (ekor -5)
sed-e: ae '$ q, N, 6, $ D; ba '
2 baris terakhir (ekor -2)
sed '$! N; $! D '
Hanya baris matcha sebab atau ungkapan biasa
sed-n '/ pattern / p'
sed '/ regexp /! d '
Hanya baris yang tidak sesuai dengan sebab atau ungkapan biasa
sed-n '/ pattern /! p '
sed '/ regexp / d'
Barisan sebelum corak atau ungkapan biasa
sed-n '/ pola / (g; 1! p;) h'
Baris berikut corak atau ungkapan biasa
sed-n '/ regexp / (n, p;)'
Keluarkan
=== Ruang dan tab ==
Mengalih keluar ruang dan tab
Pada awal baris
sed's / ^ [\ t] * / /
sed \ 's / ^ \ s * / /' # Menggunakan parameter "\ s"
Pada akhir baris
sed's / [\ t] * $ // '
Pada permulaan dan akhir baris
sed's / ^ [\ t] * //; s / [\ t] * $ // '
Talian kosong
Mengeluarkan garisan kosong
Semua baris kosong
sed '/ ^ $ / daripada
sed '/./! daripada
Hanya yang ada di bahagian atas
sed '/./, $! daripada
sed-nr '/./, $/(.*)/ s \ 1 / p' # terima kasih Adrien
Hanya pada hujungnya
sed-e: ae '/ ^ \ n * $ / ($ d N; ba'-e') '
Selang masa yang tetap
Hilangkan garisan pada selang masa yang tetap
Semua pasang baris
sed'1 ~ 2d '
Semua baris ganjil
sed'2 ~ 2d '
Setiap baris n dari baris n
sed'3 ~ 2d '# 2 Semua baris dari baris 3
Pelbagai
Sertai garis
Lampirkan garisan 2 oleh 2
sed '$! N s / \ n / / '
Lampirkan 3 baris dengan 3
sed '$! N s / \ n //; $! N s / \ n / /; '
Jika baris berakhir dengan backslash (\), tambah baris berikut dan gantikan akhir baris (\ n) dengan ruang
sed-e: ae '/ \ \ $ / N s / \ \ \ n / /; ta '
Jika baris bermula dengan tanda yang sama (=), tambahkannya ke baris sebelumnya dan gantikan tanda yang sama (=) dengan ruang
sed-e: ae '$! N s / \ n = / /; ta'-e 'P, D'