我需要一个打印名字的第一个字母的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] 举报,一经查实,本站将立刻删除。