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.