Bagaimana cara menggunakan string kata demi kata dalam sed?


Jawaban:


3

Anda harus keluar dari karakter khusus dan menggunakan pemisah selain "/".

sed 's#string1#string2#'

Saya paling sering melihat |ketika menggunakan sed.
Rob

Harus diakui, ini adalah string yang jelek.
Scott C Wilson

1

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

s_"a\\c:ti]\\']x""/\\//:`~\$%#\^&"'_ _g

2.txt

"a\c:ti]\']x""/\//:`~$%#^&"'hello world m"a\c:ti]\']x""/\//:`~$%#^&"'
"a\c:ti]\']x""/\//:`~$%#^&"'this is working"a\c:ti]\']x""/\//:`~$%#^&"'
"a\c:ti]\']x""/\//:`~$%#^&"'as expected"a\c:ti]\']x""/\//:`~$%#^&"'

1.sed adalah skrip itu sendiri dan 2.txt adalah file uji. Jalankan seperti ini untuk menguji:

$ sed -f 1.sed 2.txt
 hello world m 
 this is working 
 as expected 

$ 

Semoga ini membantu.


Perintah apa yang digunakan untuk melarikan diri? gema "a \ c: ti] \ '] x" "/ \ //:` ~ $% # ^ & "' sed -e 's / ([[\ /.*] \ |]) / \\ & / g menghasilkan> prompt di bash.
user93200

Jika Anda mencampur keduanya '(penawaran tunggal) dan "(penawaran ganda), Anda harus melarikan diri dari sesuatu dalam string. Ini bukan "masalah" dengan sedper-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 ".
icyrock.com

Bisakah Anda memberikan perintah untuk secara otomatis keluar dari string yang diberikan dan juga menguraikan bagaimana solusi mungkin dipengaruhi oleh lingkungan (berjalan di bash atau di cmd.exe)?
user93200

Perintah di tautan yang disediakan memberi Anda itu (yang Anda masukkan dalam komentar pertama ke jawaban saya). Masalahnya adalah bahwa Anda tidak dapat melakukan itu seperti yang Anda inginkan - input dari echoperintah bahkan tidak bisa sampai sedke yang akan lolos, itu harus melarikan diri di tempat untuk bahkan dicetak dengan echobenar. Solusi lain - memasukkan string ke dalam file - adalah apa yang akan berhasil, lihat hasil edit saya. Semoga itu akan berhasil untuk Anda.
icyrock.com
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.