Dalam file yang berisi baris seperti ini:
# lorem ipsum blah variable
Saya ingin menghapus #
(komentar) karakter di baris yang sama yang berisi string tertentu, di tempat. Apakah sed
baik untuk ini?
Saya berjuang agar kondisional ini berfungsi. Saya memiliki cara "canggung" untuk melakukan ini; Saya dapat menemukan nomor baris yang cocok dengan awk
atau sed
dan kemudian menggunakan nomor ini dalam sed
perintah terpisah , tetapi saya percaya bahwa ini dapat dilakukan dengan cara yang jauh lebih baik.
's/#//g'
akan menghapus semua yang#
karakter di baris. Jika bukan itu yang Anda inginkan, hapusg
(yang merupakan singkatan dari "global"). (2) Untuk mengedit file di tempat (seperti yang diminta dalam pertanyaan), gunakansed -i
.sed -i '/ipsum/s/#[[:space:]]*//'
, untuk menghilangkan spasi dan tab segera setelah#
. (4) Anda mungkin juga ingin mempertimbangkan untuk memverifikasi bahwa itu#
adalah karakter non-kosong pertama dalam baris. Perintah saat ini akan menghapus#
dari barisprompt "Enter # of ipsums:"
.sed -i '/ipsum/s/^#[[:space:]]*//'
?! (^
menandakan mulai dari garis,$
untuk akhir baris) - setidaknya dalam gnu sed ...^
, tapi itu salah. Saya sering mengomentari kode indentasi dengan meletakkan#
kode sebelum kode, jadi#
indentasi. Saya ragu bahwa saya satu-satunya orang yang melakukan itu.^
&#
, jadi sesuatu yang lebih seperti ini:/ipsum/{/^[[:space:]]*#/s/#[[:space:]]*//}
. Meskipun demikian, tergantung di mana tempatnya#
, masih dapat menyebabkan masalah (misalnya dalam bahasa yang menggunakan lekukan / pemisahan spasi).kemudian:
memberi:
Ia bekerja sebagai berikut:
The
s
mengatakansed
bahwa itu harus mengganti apa ekspresi reguler menemukan.Pola
# \(.*blue.*\)
yang memecah menjadi: Temukan hash diikuti oleh spasi. Braket (\(
) memulai pengelompokan..*blue.*
adalah katablue
dengan apa pun sebelum dan sesudah. Braket berikutnya (\)
) menutup pengelompokan.Penggantian tersebut
\1
adalah referensi balik ke konten braket pengelompokan pertama.sumber
Anda dapat menggunakan Vim dalam mode Ex:
s
penggantix
Simpan dan tutupsumber