如何将三个文件合并为一个

时间:2014-09-02 11:54:37

标签: awk

我遇到了问题。我有三个字符序列。每个人有300个字符,他们在不同的文件中。我希望将它们分成60秒并组合成一个。 字符是不同的字母和* - +

这是我的问题的方案:

的1.txt

aaaaaaa

2.txt

vvvvvvv

3.txt

ccccccc

我想将它们分成三个并将这三个文件合并为一个4.txt。

期望的输出:

aaa
vvv
ccc

aaa
vvv
ccc

a
v
C

非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

这样的事情应该这样做(使用GNU awk进行ARGC,ARGIND和FS =""):

$ cat tst.awk
BEGIN{ FS=""; charsInGrp=3 }
{
    numRows=0
    for (grpNr=1;grpNr<=NF;grpNr+=charsInGrp) {
        ++numRows
        for (delta=0; delta<charsInGrp; delta++) {
            charGrp[ARGIND,numRows] = charGrp[ARGIND,numRows] $(grpNr+delta)
        }
    }
}
END {
    for (rowNr=1;rowNr<=numRows;rowNr++) {
        for (fileNr=1;fileNr<ARGC;fileNr++) {
            print charGrp[fileNr,rowNr]
        }
        print ""
    }
}
$
$ awk -f tst.awk 1.txt 2.txt 3.txt
aaa
vvv
ccc

aaa
vvv
ccc

a
v
c

只需将charsInGrp=3更改为您喜欢的任何值,例如60。