Pertanyaan Hapus karakter pertama yang diketahui dalam string dengan sed


Bagaimana cara menghapus karakter pertama yang diketahui dalam string dengan sed?

Misalnya, katakan saya ingin menghapus karakter pertama (yaitu @) dalam string "@ ABCDEFG1234"

Saya ingin sed untuk memverifikasi apakah "@" ada sebagai karakter pertama. Jika demikian, itu harus menghapus karakter.


8
2018-06-27 14:27


asal




Jawaban:


sed 's/^@\(.*\)/\1/' 

^ berarti awal dari string

@ arang Anda yang dikenal

(.*) sisanya, ditangkap

kemudian blok yang ditangkap akan diganti ke output Maaf, tidak bisa mengujinya saat ini, tetapi harus seperti itu


7
2018-06-27 14:39





Tidak perlu menangkap dan mengganti.

sed 's/^@//'

Ini menggantikan karakter @ kapan pertama kali ^ dalam string, tanpa apa pun. Jadi, menghapusnya.


12
2017-09-14 06:55





Anda dapat melakukan ini sebagai gantinya.

sed's /^.// '

^ - Starting character 
. - No of charactes(.. means two characters)

Contoh:

echo test123 | sed 's/^.//'
est123
echo test123 | sed 's/^..//'
st123

0
2018-03-12 03:05



Pertanyaannya mengatakan, “Saya ingin sed untuk memverifikasi apakah" @ "ada sebagai karakter pertama. Jika demikian, itu harus menghapus karakter. "Jawaban Anda menghapus karakter pertama setiap baris tidak peduli apa itu. Misalnya, jika sebuah baris mengandung test123, sepertinya OP menginginkannya ditinggal sendirian. - Scott