Misalnya,
sed 's/string/ /g' where string="a\c:ti]\']x""/\//:`~$%#^&"'
Itulah cara mengoper string ke sed secara harfiah alih-alih sebagai pola regex yang ditafsirkan?
Saya akan menggunakan ini dengan cygwin dan di ubuntu, jadi solusinya harus kompatibel dengan lingkungan.
Jawaban:
Anda harus keluar dari karakter khusus dan menggunakan pemisah selain "/".
sumber
|
ketika menggunakan sed.Lihat SOq ini:
Jawaban di atas:
adalah sesuatu yang Anda butuhkan, kecuali Anda akan melakukannya di bagian pertama, bukan bagian kedua
s/first/second/
.Ketika Anda menggunakan keduanya
'
dan"
dalam perintah sed Anda, Anda harus melarikan diri dari itu. Coba lakukan ini - buat dua file:1.sed
2.txt
1.sed adalah skrip itu sendiri dan 2.txt adalah file uji. Jalankan seperti ini untuk menguji:
Semoga ini membantu.
sumber
'
(penawaran tunggal) dan"
(penawaran ganda), Anda harus melarikan diri dari sesuatu dalam string. Ini bukan "masalah" dengansed
per-se, bahkan jika Anda hanya menggema "a \ c: ti] \ '] x" "/ \ //:~$%#^&"', it will be not a complete string. E.g. you cannot do echo "abc"" and expect it to print
abc" `- Anda harus melarikan diri dari"
.echo
perintah bahkan tidak bisa sampaised
ke yang akan lolos, itu harus melarikan diri di tempat untuk bahkan dicetak denganecho
benar. Solusi lain - memasukkan string ke dalam file - adalah apa yang akan berhasil, lihat hasil edit saya. Semoga itu akan berhasil untuk Anda.