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.