微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用sed获得第一个字母的单词

我需要一个打印名字的第一个字母的bash脚本。 例如:Ruben Van Den Bosshe成为RVDB或Ken Van de Wilde成为KVdW

我想使用sed命令。

有没有人知道android中的“top”命令的结果?

当我运行ruby.exe / IRB时,我得到的是一个空白的DOS shell?

安全地使用前一个命令的结果:批处理(等待,睡眠,Ping等)

如何在bash中结合“lsof -i:port”和“kill pid”

cmd / c和文件path中的&符号

这可能是一个更好的方式,但以下似乎工作:

$ echo 'Ken Van de Wilde' | sed 's/(w)w*( |$)/1/g' KVdW $ echo 'Ruben Van Den Bosshe' | sed 's/(w)w*( |$)/1/g' RVDB

为了细化这个正则表达式,它依次匹配下面的内容

一个字的字母,在第一组中捕获: (w)

零个或多个字母的字母: w*

最后,无论是空格还是行尾: ( |$)

该序列被第一组中所捕获的内容替换: 1

$ echo 'Ken Van de Wilde' | sed 's/Bw*//g;s/s//g' KVdW

这应该在sed的所有POSIX实现中兼容:

echo "Someone Is Watching" | sed 's/([^[:space:]])[^[:space:]]*[[:space:]]*/1/g' SIW

凯夫的答案可以稍微改善一点:

echo 'K Van de Wilde' | sed 's/B.//g;s/s//g'

如果所有单词都是两个或更多字符,甚至缩短到:

echo 'Ken Van de Wilde' | sed 's/B.s*//g'

如果有人知道如何提取单个字母的特殊情况,并将其纳入上述正则表达式,我会感兴趣。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐