Unix 如何更改第二个文件中的文件

Unix 如何更改第二个文件中的文件,unix,awk,Unix,Awk,我想转换ab中字母a T C G的文件 为此,我有两个文件(file1和file2) file1(我需要转换的文件)的前2行和10列是: G A C A G G A G A A C G G 文件2的标题(第1、2和4列在此不可用): 1000035098 A G 1 10000267940 A G 2 10000305793 A G 3 10000393248 A C 4 10000434180 A G 5 1000047078 A G 6 10000516404 A G 7 100005338

我想转换
ab
中字母
a T C G
的文件
为此,我有两个文件(file1和file2)

file1(我需要转换的文件)的前2行和10列是:
G A C A G
G A G A A C G G

文件2的标题(第1、2和4列在此不可用):
1000035098 A G 1
10000267940 A G 2
10000305793 A G 3
10000393248 A C 4
10000434180 A G 5
1000047078 A G 6
10000516404 A G 7
10000533815 A G 8
10000571340AG9
10000845494 A G 10

我试着做:

awk'BEGIN{FS=“”;OFS=“”}{$1=$1;print}'file1 | awk'BEGIN{FS=“”;OFS=“”}NR==FNR{for(i=1;i我不知道您试图实现什么,您的代码对我来说毫无意义,但这个带有给定输入的awk似乎产生了正确的输出:

$ awk '
NR==FNR {                     # hash $3 of file2 use FNR as key
    a[FNR]=$3
    next
}
{
    for(i=1;i<=NF;i++)        # for each char in file1
        $i=($i==a[i]?"A":"B") # replace with A or B depending on
}1' file2 file1
A A A B B B B B B A
A B A B B B B B A A
$awk'
NR==FNR{#文件2的哈希$3使用FNR作为键
a[FNR]=3美元
下一个
}
{

对于(i=1;如果从AWK代码中,我不知道您想要实现什么。您是否介意在这里扩展核心思想。也可以在代码示例中添加一些缩进。
AWK'BEGIN{FS=”“;OFS=“}{$1=$1;print}”file1
只需压缩所有空白空间来烧制空白字符,然后
AWK'BEGIN{FS=“”
是POSIX中未定义的行为,但在某些AWK上(例如gawk)将每一行拆分为每个字段一个字符。所有这些看起来都不太可能是您想要的,但是您还没有告诉我们您想要什么,所以idk…谢谢您@James。我是一名初学者,所以有时我很难编写代码。看起来效果很好。再次感谢