web*_*web 1 linux grep sed awk text-formatting
我需要检查我的整个文件是否只包含 4 个字符;“A”、“T”、“G”和“C”。我曾经使用 sed 拆分字符,然后使用 grep -o 和 -v 来排除要检查的目标字符。
在 linux 中是否有任何简单直接的方法可以做到这一点?使用 sed/awk/grep?
(似乎有关于这个相关问题的建议,但他们在命令中包含了整个文本。我的文件大小太大了。)
例如,输入文件中有四行,该行中可能存在其他字符(ATGC 除外)。如果可能,我想检测奇数字符并显示奇数字符以及它们所在的行数。
输入:
ATTGTAAGGTAAGTGGATTYTCCGGGRETC
TTVGGATCGTTGACCAGTK
GCCCGGGCCGGTCCTTTGGTGCGTGGGG
CTCTCCCAACCCCCCCACCCTCGACCTGAGCTCAGGCXC
Run Code Online (Sandbox Code Playgroud)
期望输出:
1:Y
1:R
1:E
2:V
2:K
4:X
Run Code Online (Sandbox Code Playgroud)
nez*_*dka 11
-n使用从 1 开始的行号为每一行输出添加前缀。
-o只打印匹配的部分。
[^ATGC] 排除字符。
grep -no '[^ATGC]' file
Run Code Online (Sandbox Code Playgroud)