【发布时间】:2012-12-12 00:11:50
【问题描述】:
我有 100 个如下所示的文本文件:
File title
4
Realization number
variable 2 name
variable 3 name
variable 4 name
1 3452 4538 325.5
第 7 行 (1) 的第一个数字是实现编号,它应该与文件名相关。即,第一个文件称为 file1.txt,实现编号为 1(如上所示)。第二个文件名为 file2.txt,第 7 行的实现编号为 2。 file3.txt 应该在第 7 行有实现编号 3,依此类推...
不幸的是,每个文件的实现=1,它们应该根据文件名递增。
我想从每个文件的第 7 行(3452、4538 和 325.5)中提取变量 2、3 和 4,并将它们附加到一个名为 summary.txt 的摘要文件中。
我知道如何从 1 个文件中提取信息:
awk 'NR==7,NR==7{print $2, $3, $4}' file1.txt
哪个,正确地给了我:
3452 4538 325.5
我的第一个问题是,当从 bash 脚本对多个文件运行时,此命令似乎不会给出相同的结果。
#!/bin/bash
for ((i=1;i<=100;i++));do
awk 'NR=7,NR==7{print $2, $3, $4}' File$((i)).txt
done
当我使用上述脚本时,我在屏幕上打印了多行。
其次,我想将这些值与正确的先前实现编号一起输出到摘要文件中。即我想要一个看起来像这样的文件:
1 3452 4538 325.5
2 4582 6853 158.2
...
100 4865 3589 15.15
感谢您的帮助!
【问题讨论】: