ganti string dengan tanda kutip ganda dalam file teks

Saya menggunakan perintah berikut:

perl -pi -w -e 's/EmployeeDataModel/EmployeeData/g;' *.java 

Ini mengubah hal-hal seperti:

class EmployeeDataModel to class EmployeeData

Namun, saat mengambil hal-hal seperti:

class="EmployeeDataModel" 

Tampaknya tidak melakukan apa pun.

Apakah ada solusi untuk mengatasi hal ini?


person gran_profaci    schedule 24.06.2013    source sumber
comment
Memang benar. Cukup letakkan dua baris di atas dalam satu file dan coba skripnya. Masalahnya terkubur di suatu tempat di tempat lain...   -  person jm666    schedule 25.06.2013
comment
itu harus berhasil! Tidak ada alasan mengapa itu tidak berhasil.   -  person dAm2K    schedule 25.06.2013


Jawaban (2)


Apakah kamu sebenarnya yakin? Ini file pertama saya:

$ cat perl_test
class EmployeeDataModel
class="EmployeeDataModel"

Sekarang dengan pengganti Perl Anda:

$ cat perl_test | perl -pi -w -e 's/EmployeeDataModel/Test/g'
class Test
class="Test"

Anda pasti pernah melakukan kesalahan, mungkin salah ketik pada konten string Anda, atau semacamnya.

person Jerska    schedule 24.06.2013
comment
Baiklah, cobalah, salin/tempel, dan Anda akan melihat bahwa ini berfungsi persis seperti yang diharapkan. Masalah Anda ada di tempat lain. - person Jerska; 25.06.2013

Kode untuk GNU sed:

$echo class="EmployeeDataModel" |sed s/EmployeeDataModel/EmployeeData/g
class="EmployeeData"

Dan perl juga berfungsi:

$echo class="EmployeeDataModel" |perl -pi -w -e s/EmployeeDataModel/EmployeeData/g;
class="EmployeeData"
person captcha    schedule 24.06.2013
comment
Ya -- ini membuat 'keduanya' perubahan (sebenarnya, hanya ada satu, tetapi Anda memilih untuk menganggapnya berbeda). - person Jonathan Leffler; 25.06.2013