如何删除除点号前的第一个字符外的所有字符

时间:2019-05-06 19:50:30

标签: string bash

假设您有一个字符串

anyString.ofSomeSort...

,您总是需要将其修剪为

a.ofSomeSort...

因此,只需将子字符串的第一个字符保留在第一个点之前即可。

有什么想法正则表达式看起来像这样吗?

1 个答案:

答案 0 :(得分:1)

您可以使用sed:

$ sed 's/\(.\)[^.]*/\1/' <<< 'anyString.ofSomeSort...'
a.ofSomeSort...

这会捕获第一个字符,然后删除第一个字符后不包含句点的所有内容。

或使用shell参数扩展:

$ str='anyString.ofSomeSort...'
$ echo "${str:0:1}${str#${str%%.*}}"
a.ofSomeSort...

${str:0:1}只是第一个字符,${str#${str%%.*}}保留从第一个句点开始的所有内容。