在 Linux 命令行界面中将每行第一个逗号后的首字母大写

在 Linux 命令行界面中将每行第一个逗号后的首字母大写

给定一个包含与以下内容类似的行的文件。

Mike,mackenna,mike.mackenna,[email protected],yes,no,000
Joe,smith,joe.smith,[email protected],yes,no,123

我想更改文件,以便行显示如下

Mike,Mackenna,mike.mackenna,[email protected],yes,no,000
Joe,Smith,joe.smith,[email protected],yes,no,123

理想情况下,我希望使用替换和正则表达式在 vim 中进行更改,但我也愿意接受其他可能的解决方案。

答案1

这是一个非常简单的 vim 命令:

:%s/,./\U&

办法\U将以下内容转换为大写,并且&表示整个匹配的文本(与 相同\0

由于我们没有给出/g标志,因此这只会在第一次匹配时运行。您也可以执行常规命令:

:%norm f,lvU

这就像手动f,lvU在每一行上打字:f,找到逗号,l向右移动,vU转换为大写。

要使用 bash 命令执行此操作:

vim file.txt -c "%s/,./\U&" -c "wq"

或者

vim file.txt -c "%norm f,lvU" -c "wq"

相关内容