(9 jawaban)
Tutup 6 tahun yang lalu.
Saya tahu pertanyaan ini mungkin sudah pernah dijawab sebelumnya. Saya telah melihat banyak utas tentang ini di berbagai tempat, tetapi jawabannya biasanya sulit untuk saya ekstrak. Saya mencari bantuan dengan contoh penggunaan perintah 'sed'.
Katakanlah saya ingin bertindak atas file "hello.txt" (dalam direktori yang sama dengan prompt). Di mana pun itu berisi frasa "sedikit", itu harus diubah menjadi "asd". Seperti apa bentuk perintahnya?
Jawaban yang Diterima:
sed
adalah s tream ed itor, di mana Anda dapat menggunakan |
(pipa) untuk mengirim aliran standar (STDIN dan STDOUT secara khusus) melalui sed
dan mengubahnya secara terprogram dengan cepat, menjadikannya alat yang berguna dalam tradisi filosofi Unix; tetapi dapat mengedit file secara langsung juga, menggunakan -i
parameter yang disebutkan di bawah.
Pertimbangkan yang berikut :
sed -i -e 's/few/asd/g' hello.txt
s/
digunakan untuk s gantikan ekspresi yang ditemukan few
dengan asd
:
Sedikit, yang berani.
Asd, pemberani.
/g
singkatan dari "global", yang berarti melakukan ini untuk seluruh lini. Jika Anda meninggalkan /g
(dengan s/few/asd/
, selalu harus ada tiga garis miring apa pun yang terjadi) dan few
muncul dua kali pada baris yang sama, hanya few
pertama diubah menjadi asd
:
Sedikit pria, sedikit wanita, yang berani.
Pria asd, sedikit wanita, pemberani.
Ini berguna dalam beberapa keadaan, seperti mengubah karakter khusus di awal baris (misalnya, mengganti simbol lebih besar dari yang digunakan beberapa orang untuk mengutip materi sebelumnya di utas email dengan tab horizontal sambil meninggalkan ketidaksetaraan aljabar yang dikutip nanti di baris tidak tersentuh), tetapi dalam contoh Anda di mana Anda menentukan di mana saja few
terjadi itu harus diganti, pastikan Anda memiliki /g
.
Dua opsi (flag) berikut digabungkan menjadi satu, -ie
:
-i
opsi digunakan untuk mengedit i n tempatkan pada file hello.txt
.
-e
opsi menunjukkan e xpression/perintah untuk dijalankan, dalam hal ini s/
.
Catatan:Anda harus menggunakan -i -e
untuk mencari/mengganti. Jika Anda melakukan -ie
, Anda membuat cadangan setiap file dengan huruf 'e' ditambahkan.