如何将整个文件变成大写?

如何将整个文件变成大写?

我在另一个校园的服务器上有一个文件,里面全是小写,我需要将其全部改为大写。有没有简单的 unix 命令可以做到这一点?[我正在 PC 上使用 PuTTy,看看这是否有区别。]

它只有 4 个不同的字母(它是 DNA,所以只有 A、T、C 和 G),所以 4 个单独的搜索和替换功能也可以工作。(在 VI 或其他可通过远程访问工作的文本编辑器中。)但我不知道如何在 VI 中进行搜索和替换?

我可以将它复制到我的桌面,在本地文本编辑器中搜索并替换,然后复制回来,但最终它会充满 Windows 换行符?[我在 PC 上,远程机器是 Linux 服务器,而我需要解释 DNA 文件的程序只能处理 Unix 换行符。]

答案1

你不需要在编辑器中打开文件,就可以使用tr它来翻译字符(手册页) 直接地:

tr '[:lower:]' '[:upper:]' < input.txt > output.txt

答案2

这将是 VI 解决方案。如果您只想将这些字符替换为大写字母

:s/[actg]/\U\0/g

对于所有角色

:s/[a-z]/\U\0/g

解释: s(ubstite) [actg]这些字符或[a-z]范围的正则表达式。 \U\0意思是:将匹配模式更改为大写, g替换所有出现的内容

建议阅读: http://vimregex.com/#substitute

答案3

我相信其他人会想出更优雅的解决方案,但由于你的字母表仅限于 4 个字母,你可以这样做

sed 's/a/A/g;s/t/T/g;s/c/C/g;s/g/G/g' <filename>

如果一切正常,您可以添加> <filename>sed -i ...保存到文件

查看维基百科了解更多信息

相关内容