我有一个包含5列的文件,如下所示:
15642 G A.aa,, 0.77501 107
15643 G A.a,.A, 0.7570 17
15644 C t.TtTt,.T, 0.7501 10
我正在尝试将Aa和Tt的第3列转换为“A”或“T”。 输出:
15642 G A 0.77501 107
15643 G A 0.7570 17
15644 C T 0.7501 10
我尝试了各种awk方法但没有成功。我真诚地感谢任何帮助。谢谢!
答案 0 :(得分:1)
关注awk
可能对您有帮助。
awk '$3~/[Aa]/{$3="A"} $3~/[Tt]/{$3="T"} 1' Input_file
答案 1 :(得分:1)
有很多可能性,包括:
$ awk '{sub(/\..*/,"",$3)} 1' file
15642 G A 0.77501 107
15643 G A 0.7570 17
15644 C t 0.7501 10
或
$ awk '{$3=substr($3,1,1)} 1' file
15642 G A 0.77501 107
15643 G A 0.7570 17
15644 C t 0.7501 10
或
$ awk '{$3=toupper(substr($3,1,1))} 1' file
15642 G A 0.77501 107
15643 G A 0.7570 17
15644 C T 0.7501 10
答案 2 :(得分:0)
这可能适合你(GNU sed):
sed -ri 's/(\S)\S*/\U\1/3' file
将第三个字段的第一个字符转换为大写。