หนึ่งจะลบตัวอักษรแรกที่รู้จักในสตริงด้วย sed อย่างไร
ตัวอย่างเช่นสมมติว่าฉันต้องการลบอักขระตัวแรก (ซึ่งคือ @) ในสตริง "@ ABCDEFG1234"
ฉันต้องการให้คนอื่นยืนยันว่า "@" มีอยู่เป็นตัวอักษรตัวแรกหรือไม่ หากเป็นเช่นนั้นควรลบตัวอักขระ
หนึ่งจะลบตัวอักษรแรกที่รู้จักในสตริงด้วย sed อย่างไร
ตัวอย่างเช่นสมมติว่าฉันต้องการลบอักขระตัวแรก (ซึ่งคือ @) ในสตริง "@ ABCDEFG1234"
ฉันต้องการให้คนอื่นยืนยันว่า "@" มีอยู่เป็นตัวอักษรตัวแรกหรือไม่ หากเป็นเช่นนั้นควรลบตัวอักขระ
คำตอบ:
sed 's/^@\(.*\)/\1/'
^ หมายถึงการเริ่มต้นของสตริง
@ ตัวละครที่คุณรู้จัก
(.*) ส่วนที่เหลือถูกจับ
บล็อกที่ถูกจับแล้วจะถูกแทนที่เพื่อแสดงผลขออภัยไม่สามารถทดสอบได้ในขณะนี้ แต่ควรเป็นเช่นนั้น
ไม่จำเป็นต้องจับภาพและแทนที่
sed 's/^@//'
สิ่งนี้จะแทนที่ตัวละคร@เมื่อตัวอักษรตัวแรก^ในสตริงไม่มีอะไร ดังนั้นการลบมัน
คุณสามารถทำสิ่งนี้แทน
sed 's /^.//'
^ - Starting character
. - No of charactes(.. means two characters)
ตัวอย่าง:
echo test123 | sed 's/^.//'
est123
echo test123 | sed 's/^..//'
st123
test123ดูเหมือนว่า OP ต้องการให้อยู่คนเดียว