查找字符串中每个单词的第一个字母

时间:2012-07-08 08:06:14

标签: bash sed grep

如何使用bash找到字符串中包含的单词的第一个字母。

例如

代码:

str="my-custom-string'

我想找到m,c,s。我知道如何找到第一个字母,但这稍微复杂一些。 非常感谢,

4 个答案:

答案 0 :(得分:2)

$ echo 'my-custom-string' | egrep -o '\b\w'
m
c
s

答案 1 :(得分:2)

使用参数替换的纯Bash。删除减号,选择每个单词的第一个字符:

str="my-custom-string"

for word in ${str//-/ }; do
    echo "${word:0:1}"
done

结果

m
c
s

答案 2 :(得分:2)

这是sed版本:

echo 'my-custom-string' | sed 's/\(^\|-\)\(.\)[^-]*/\2\n/g'

答案 3 :(得分:1)

这可能适合你(GNU sed);

echo 'my-custom-string' | sed 's/\B.//g;y/-/,/'
m,c,s

或:

echo 'my-custom-string' | sed 's/\B.//g;y/-/\n/'
m
c
s