你好,我有一个包含 3 列的文本文件
2.0 44.8 789.3
3.0 58.4 453.0
4.0 97.2 -489.1
5.2 35.3 458.6
我想从上面的文本文件中选择列,并想将所选列附加到另一个文本文件中。我要附加上述列的文件如下所示
> > > >
10.0 8.5
20.0 8.5
30.0 8.5
40.0 8.5
> > > >
10.0 8.0
20.0 8.0
30.0 8.0
40.0 8.0
> > > >
10.0 9.0
20.0 9.0
30.0 9.0
40.0 9.0
> > > >
我的预期输出是
> > > >
10.0 8.5 2.0
20.0 8.5 3.0
30.0 8.5 4.0
40.0 8.5 5.2
> > > >
10.0 8.0 44.8
20.0 8.0 58.4
30.0 8.0 97.2
40.0 8.0 35.3
> > > >
10.0 9.0 789.3
20.0 9.0 453.0
30.0 9.0 -489.1
40.0 9.0 458.6
> > > >
我尝试了脚本,但之后没有更多的想法,我需要专家的帮助。在此先感谢。
#!/bin/sh
for file in inp.txt
do
awk '{print $1}' > colone
done
最佳答案
$ cat tst.awk
NR==FNR {
for (numBlocks=1; numBlocks<=NF; numBlocks++) {
vals[numBlocks,NR] = $numBlocks
}
next
}
/^>/ {
blockNr++
rowNr = 0
print
next
}
{ printf "%s %7s\n", $0, vals[blockNr,++rowNr] }
$ awk -f tst.awk file1 file2
> > > >
10.0 8.5 2.0
20.0 8.5 3.0
30.0 8.5 4.0
40.0 8.5 5.2
> > > >
10.0 8.0 44.8
20.0 8.0 58.4
30.0 8.0 97.2
40.0 8.0 35.3
> > > >
10.0 9.0 789.3
20.0 9.0 453.0
30.0 9.0 -489.1
40.0 9.0 458.6
> > > >
关于linux - 将列追加到另一个文本文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65023042/