Hapus karakter yang diketahui pertama dalam string dengan sed


12

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

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

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

Jawaban:


10

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

^ berarti awal dari string

@ char kamu dikenal

(.*) sisanya, ditangkap

maka blok yang ditangkap akan diganti untuk output Maaf, tidak dapat mengujinya saat ini, tetapi harus seperti itu


18

Tidak perlu untuk menangkap dan mengganti.

sed 's/^@//'

Ini menggantikan karakter @ketika pertama kali ^dalam string, tanpa apa-apa. Jadi, hapus saja.


0

Anda bisa 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

1
Pertanyaannya mengatakan "Saya ingin sed memverifikasi apakah" @ "ada sebagai karakter pertama. Jika demikian, itu harus menghapus karakter. " Jawaban Anda menghapus karakter pertama dari setiap baris, apa pun itu. Misalnya, jika sebuah baris berisi test123, sepertinya OP menginginkannya dibiarkan sendiri.
— Scott
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.