用sed删除字符串中的第一个已知字符


12

如何用sed删除字符串中的第一个已知字符?

例如,假设我要删除字符串“ @ ABCDEFG1234”中的第一个字符(即@)。

我要sed验证“ @”是否作为第一个字符存在。如果是这样,则应删除该字符。

Answers:


10

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

^ 表示字符串的开头

@ 你知道的字符

(.*) 其余的,被捕获

然后捕获的块将被替换为输出Sorry,目前无法对其进行测试,但应类似


18

无需捕获和更换。

sed 's/^@//'

@当它^在字符串中的第一个字符时,它将完全替换。因此,将其删除。


0

您可以改为这样做。

sed's /^.//'

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

范例:

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

1
问题是“我要让sed验证是否存在“ @”作为第一个字符。如果是这样,则应删除该字符。” 无论答案是什么,您的答案都会删除每行的第一个字符。例如,如果某行包含test123,则OP希望它单独保留。
斯科特(Scott)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.