2014-09-02 43 views
-5

我遇到了问题。我有三个字符序列。每个人有300个字符,他们在不同的文件。我想在六十年代把它们分成一个整体。 字符是不同势字母和* - +如何将三个文件合并为一个

这是我的问题的方案:

的1.txt

aaaaaaa 

2.txt

vvvvvvv 

3.txt

ccccccc 

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

所需的输出:

aaa 
vvv 
ccc 

aaa 
vvv 
ccc 

a 
v 
C 

非常感谢您的帮助

+1

目前尚不清楚你想要什么。另外,正如你指出'awk'这意味着你知道这个工具可以做到这一点。所以,你到目前为止尝试过什么?您可能接近解决方案。 – fedorqui 2014-09-02 11:57:20

+0

-1这个问题。如果你有问题并要求别人,你应该尽力解释清楚你的问题。没有人会通过阅读你的问题知道你想要什么。例如。文件1有'7 a',文件2有'7 v'文件3有'6 c'为什么一个'a/v'被删除?哪一个应该被删除?你的投入是否始终是同一封信?他们可以是多线?分割成多部分的规则是什么?如果你问有人帮助你,请认真对待。 – Kent 2014-09-02 12:02:49

+0

肯特:对不起:我认为我的帖子现在更清晰。 – 2014-09-02 12:10:40

回答

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.

相关问题