24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2312  |  回复: 3

gn02530640

银虫 (小有名气)

[求助] 用 fortran 读取多个 .txt 文件并输出在同一个文件

用 fortran 读取个 .txt 文件并输出在同一个文件

求助,小弟目前有多个txt文件,格式如下:
文件名:exp7_20sys_step2500_mole5.txt
# UV-VIS Spectrum
# X-Axis:  Excitation Energy (nm)
# Y-Axis:  Epsilon
#                          X                              Y                    DY/DX
        0.0000000000        0.0000000000                         nan
        1.0000000000        0.0000000000        0.0000000000
        2.0000000000        0.0000000000        0.0000000000
        3.0000000000        0.0000000000        0.0000000000
        4.0000000000        0.0000000000        0.0000000000
        5.0000000000        0.0000000000        0.0000000000
        6.0000000000        0.0000000000        0.0000000000
        7.0000000000        0.0000000000        0.0000000000
        8.0000000000        0.0000000000        0.0000000000
        9.0000000000        0.0000000000        0.0000000000
       10.0000000000        0.0000000000        0.0000000000
       11.0000000000        0.0000000000        0.0000000000
       12.0000000000        0.0000000000        0.0000000000
       13.0000000000        0.0000000000        0.0000000000

..........
      990.0000000000        0.0000000202       -0.0000000000
      991.0000000000        0.0000000195       -0.0000000000
      992.0000000000        0.0000000189       -0.0000000000
      993.0000000000        0.0000000183       -0.0000000000
      994.0000000000        0.0000000177       -0.0000000000
      995.0000000000        0.0000000171       -0.0000000000
      996.0000000000        0.0000000165       -0.0000000000
      997.0000000000        0.0000000160       -0.0000000000
      998.0000000000        0.0000000155       -0.0000000000
      999.0000000000        0.0000000150       -0.0000000000

现在我想要读取所有txt文件中Y列的数值并输出在同一个文件,请问该怎么写?
我知道这种事实在应该自己下苦工去学习,但迫于时间压力目前我目前无法这样做,真的很抱歉…还请各位帮忙,非常感谢…
最后付上档案
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : exp7_20sys_step2500_mole5.txt
  • 2015-04-30 22:28:59, 60.68 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jerkwin

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
gn02530640: 金币+20, ★★★★★最佳答案 2015-05-01 10:31:26
用bash做吧, 更简单
gawk '/^ +[0-9]/{print $2}' *.txt
2楼2015-04-30 23:50:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gn02530640

银虫 (小有名气)

引用回帖:
2楼: Originally posted by jerkwin at 2015-04-30 23:50:23
用bash做吧, 更简单
gawk '/^ +/{print $2}' *.txt

太感谢您了!!
另外想再请教一下一个问题,
举例来说,我现在目录下有三个txt文件(所有文件都是1000行),输入指令: gawk '/^ +[0-9]/{print $2}' *.txt > test.txt
得到的teat.txt长这样:

#行数     #Y值
1         0.0000000000
2         0.0000000000
3         0.0000000000
4         0.0000000000
5         0.0000000000
6         0.0000000000
...      
...      
...      
998       0.0000000160
999       0.0000000155
1000      0.0000000150
1001      0.0000000000
1002      0.0000000000
1003      0.0000000000
1004      0.0000000000
...
...
...
1998      0.0000000160
1999      0.0000000155
2000      0.0000000150
2001      0.0000000000
2002      0.0000000000
2003      0.0000000000
2004      0.0000000000

三个档案的Y值都是在同一列,请问 gawk或者shell语法有办法将各个txt文件的输出结果为独立的一列吗?
比方说像这样:

#行数     档案1的Y值    档案2的Y值   档案3的Y值
1         0.0000000000  0.0000000000 0.0000000000
2         0.0000000000  0.0000000000 0.0000000000
3         0.0000000000  0.0000000000 0.0000000000
4         0.0000000000  0.0000000000 0.0000000000
5         0.0000000000  0.0000000000 0.0000000000
6         0.0000000000  0.0000000000 0.0000000000
7         0.0000000000  0.0000000000 0.0000000000
8         0.0000000000  0.0000000000 0.0000000000
9         0.0000000000  0.0000000000 0.0000000000
10        0.0000000000  0.0000000000 0.0000000000
11        0.0000000000  0.0000000000 0.0000000000
12        0.0000000000  0.0000000000 0.0000000000
13        0.0000000000  0.0000000000 0.0000000000
14        0.0000000000  0.0000000000 0.0000000000
15        0.0000000000  0.0000000000 0.0000000000
16        0.0000000000  0.0000000000 0.0000000000
17        0.0000000000  0.0000000000 0.0000000000

还是我需要写一个sh执行脚本来做呢?

这样无理的要求实在是非常抱歉...
3楼2015-05-01 10:30:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jerkwin

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
gn02530640: 金币+30, ★★★★★最佳答案, 太感謝了! 真的是受益良多 2015-05-01 14:21:39
看你问得诚恳, 就回你几句吧

for file in *.txt; do
        echo $file
        awk '/^ +[0-9]/{print $2}' $file >"_tmp"$file
done
paste "_tmp"*.txt
4楼2015-05-01 11:00:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gn02530640 的主题更新
信息提示
请填处理意见