หนึ่งจะลบตัวอักษรแรกที่รู้จักในสตริงด้วย 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 ต้องการให้อยู่คนเดียว