在linux中替换文件中每一行中的字符

Ben*_*ker 0 linux bash awk sed

我有一个文件,每行都有不同的单词。我的目标是将第一个字符替换为大写字母并将第三个字符替换为“#”。

例如:football 将被交换为 -> Foo#ball

我尝试考虑使用 awk 和 sed。它对我没有帮助,因为(据我所知)sed 需要精确的字符输入,而 awk 可以打印所需的字符但不能更改它。

Cyr*_*rus 5

使用 GNU sed 和两个s命令:

echo 'football' | sed -E 's/(.)/\U\1/; s/(...)./\1#/'
Run Code Online (Sandbox Code Playgroud)

输出:

足球#球

请参阅:3.3 s 命令5.7 反向引用和子表达式以及5.9.2 大写/小写转换