Apakah ada cara untuk mengomentari / menghapus komentar skrip shell / config / ruby menggunakan baris perintah?
sebagai contoh:
$ comment 14-18 bla.conf
$ uncomment 14-18 bla.conf
ini akan menambah atau menghapus #
tanda on bla.conf
on line 14
ke 18
. Biasanya saya gunakan sed
, tapi saya harus tahu isi dari garis-garis itu dan kemudian melakukan operasi find-replace, dan itu akan memberikan hasil yang salah ketika ada lebih dari satu jarum (dan kami hanya ingin mengganti N-th satu).
shell-script
text-processing
Kokizzu
sumber
sumber
sed
,perl
, dll Secara khusus A dengan Terdon!Jawaban:
Untuk mengomentari baris 2 hingga 4 dari bla.conf:
Untuk membuat perintah yang Anda inginkan, cukup masukkan perintah di atas ke dalam shell script bernama comment:
Script ini digunakan sama seperti milik Anda dengan pengecualian bahwa baris pertama dan terakhir harus dipisahkan oleh koma daripada tanda hubung. Sebagai contoh:
Perintah tanda komentar dapat dibuat secara analog.
Fitur lanjutan
sed
Pilihan jalur cukup kuat. Selain menentukan baris pertama dan terakhir berdasarkan nomor, juga dimungkinkan untuk menentukannya dengan regex. Jadi, jika Anda ingin memerintahkan semua baris dari baris yang berisifoo
baris yang berisibar
, gunakan:Sistem BSD (OSX)
Dengan sed BSD,
-i
opsi membutuhkan argumen bahkan jika itu hanya string kosong. Jadi, misalnya, ganti perintah teratas di atas dengan:Dan, ganti perintah dalam skrip dengan:
sumber
'
setelah-i
opsi disengaja? Tidak membutuhkannya.Dengan GNU sed (untuk mengganti file yang ada dengan
-i
opsi):sumber
Anda dapat menggunakan Vim dalam mode Ex:
g
regex globals
penggantix
Simpan dan tutupsumber
Anda dapat membuat bash_file dengan fungsi untuk menggunakannya kembali di proyek Anda
sumber