2014-09-02 120 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.

相關問題