Awk 如何将三个文件合并为一个文件
我有个问题。我有三个字符序列。每一个都有300个字符,它们在不同的文件中。我想在60年代把它们分开,合并成一个。 字符是不同的字母和字母*-+ 这就是我的问题所在: 1.txt 2.txt 3.txt 我想把它们分成三部分,并将这三个文件合并成一个4.txt文件 期望输出:Awk 如何将三个文件合并为一个文件,awk,Awk,我有个问题。我有三个字符序列。每一个都有300个字符,它们在不同的文件中。我想在60年代把它们分开,合并成一个。 字符是不同的字母和字母*-+ 这就是我的问题所在: 1.txt 2.txt 3.txt 我想把它们分成三部分,并将这三个文件合并成一个4.txt文件 期望输出: aaa vvv ccc aaa vvv ccc a v C 非常感谢您提供的任何帮助使用GNU awk for ARGC、argid和FS=: $ cat tst.awk BEGIN{ FS=""; charsInGr
aaa
vvv
ccc
aaa
vvv
ccc
a
v
C
非常感谢您提供的任何帮助使用GNU awk for ARGC、argid和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。不清楚您想要什么。此外,正如您所指出的awk,这意味着您知道此工具可以实现。那么,到目前为止你试过什么?你可能已经接近解决方案了。-1问题。如果你有问题问别人,你应该尽力把问题解释清楚。通过阅读你的问题,没有人会知道你到底想要什么。例如,文件1有7个a,文件2有7个v文件3有6个c为什么删除了一个a/v?哪一个应该被移除?你的输入总是同一个字母吗?它们可能是多行的吗?分割成多个部分的规则是什么?肯特:对不起,我想我的帖子现在更清楚了。
ccccccc
aaa
vvv
ccc
aaa
vvv
ccc
a
v
C
$ 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