bash - 查找单词中的第一个元音 - bash
问题描述
我使用常规编程语言找到了这个问题的其他几个答案,但没有找到 bash 的答案。我正在尝试编写一个 bash 脚本,但遇到了能够在给定字符串中找到第一个元音的问题。我的目标是查看一个单词是否以一个或多个辅音开头,然后将这些辅音移动到单词的末尾并添加“ay”,然后打印出该单词。任何帮助表示赞赏。
解决方案
sed
使用和正则表达式/捕获组的一个想法:
$ sed -E 's/(^[^aeiouAEIOU]*)(.*)/\2\1ay/g' <<< 'nix'
ixnay
$ sed -E 's/(^[^aeiouAEIOU]*)(.*)/\2\1ay/g' <<< 'NIX'
IXNay
$ sed -E 's/(^[^aeiouAEIOU]*)(.*)/\2\1ay/g' <<< 'potato'
otatopay
$ sed -E 's/(^[^aeiouAEIOU]*)(.*)/\2\1ay/g' <<< 'school'
oolschay
在哪里:
sed -E
- 在扩展正则表达式模式下运行(^[^aeiouAEIOU]*)
- 第一个捕获组从输入的开头(第一个^
)开始,包括直到第一个元音的所有内容(即,不在 中的所有内容aeiouAEIOU
)(.*)
- 第二个捕获组抓取输入的其余部分(即,从第一个元音到输入的末尾)\2\1ay
- 输出第 2 个捕获组 (\2
),然后输出第 1 个捕获组 (\1
),然后'ay
'<<< 'nix'
- 一个“这里的字符串”,它允许我们将一个字符串作为标准输入提供给sed
命令
推荐阅读
- node.js - 使用nodejs将查找查询的结果从MONGODB导出到json文件
- spring-boot - Avro 类不能转换为 org.springframework.messaging.Message 类
- pdf - 在不使用工具栏的情况下放大和缩小嵌入的 pdf
- python - 错误:形状 (2,7) 和 (2,7) 未对齐:7 (dim 1) != 2 (dim 0)
- python - 从具有列表值的 pandas 数据帧创建稀疏数据帧
- java - 如何在Ubuntu中永久设置sdkman路径安装的sdkman和JDK
- reactjs - 模拟反应钩子并保留现有模块
- image - 如何在 Android xamarin 中拍摄放大图片时提高图像质量
- java - Java中的地址和引用有什么区别?
- java - 如何使用正则表达式在java中提取单词