如何将整个文件转换为大写?


0

我在另一个校园的服务器上有一个文件,全部是小写的,我需要更改为全部大写。是否有任何简单的unix命令可以执行此操作? [我在PC上使用PuTTy,如果这有任何区别。]

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

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

Answers:


4

您无需在可以使用的编辑器中打开该文件 tr to(翻译(c)字符( 手册页 )直接:

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


1

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

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

如果这可以正常工作,你可以添加 > <filename> 要么 sed -i ... 保存到文件

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


是sed只是一个unix命令?
Kirt

是的,你应该在任何unix类型的系统上找到它 - 我的测试是在mac上完成的
Karthik T
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.