如何将整个数据从多个文件写入文本文件?

时间:2019-07-07 19:58:27

标签: bash awk command-line ubuntu-16.04

我与that situation类似,但有一些区别。这就是为什么我可以通过稍微更改一下代码来应用@Alex Harvey的答案,但我没有满足我的要求的原因。

for f in *.Z ; do
  gunzip $f
  codg=${f%.Z}
  awk '
    /(START|END|EPOCH) OF (TEC|CURRENT) MAP/
    $1 == "45.0-180.0" {p=1}
    $1 == "32.5-180.0" {p=0}
    p && $0 ~ "LAT/LON1/LON2/DLON/H" {
      print; getline; getline
      print $(NF-4)" "$(NF-3)" "$(NF-2)" "$(NF-1)" "$NF
    }
  ' < $codg > $codg.edited
done

1. Example file

2. Example file

部分输出如下:

     1                                                      START OF TEC MAP    
  1998     6     1     1     0     0                        EPOCH OF CURRENT MAP
    45.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
92 85 80 77 76
    42.5-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
93 86 82 80 81
    40.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
96 89 86 85 88
    37.5-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
101 95 92 93 96
    35.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
107 102 100 101 105
     1                                                      END OF TEC MAP      
     2                                                      START OF TEC MAP    
  1998     6     1     3     0     0                        EPOCH OF CURRENT MAP
    45.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
67 65 63 61 60
    42.5-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
71 69 68 67 67
    40.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
78 76 75 75 76
    37.5-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
85 84 83 84 86
    35.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
93 92 92 92 94 

但是我想将其写成如下格式:

01-06-1998 01:00:00 35 25 10.7
01-06-1998 01:00:00 35 30 10.2
01-06-1998 01:00:00 35 35 10
01-06-1998 01:00:00 35 40 10.1
01-06-1998 01:00:00 35 45 10.5
01-06-1998 01:00:00 37.5 25 10.1
01-06-1998 01:00:00 37.5 30 9.5
01-06-1998 01:00:00 37.5 35 9.2
01-06-1998 01:00:00 37.5 40 9.3
01-06-1998 01:00:00 37.5 45 9.6
01-06-1998 01:00:00 40 25 9.6
01-06-1998 01:00:00 40 30 8.9
01-06-1998 01:00:00 40 35 8.6
01-06-1998 01:00:00 40 40 8.5
01-06-1998 01:00:00 40 45 8.8
01-06-1998 01:00:00 42.5 25 9.3
01-06-1998 01:00:00 42.5 30 8.6
01-06-1998 01:00:00 42.5 35 8.2
01-06-1998 01:00:00 42.5 40 8
01-06-1998 01:00:00 42.5 45 8.1
01-06-1998 01:00:00 45 25 9.3
01-06-1998 01:00:00 45 30 8.6
01-06-1998 01:00:00 45 35 8.2
01-06-1998 01:00:00 45 40 8
01-06-1998 01:00:00 45 45 8.1
01-06-1998 03:00:00 35 25 9.3
01-06-1998 03:00:00 35 30 9.2
01-06-1998 03:00:00 35 35 9.2
01-06-1998 03:00:00 35 40 9.2
01-06-1998 03:00:00 35 45 9.4
01-06-1998 03:00:00 37.5 25 8.5
01-06-1998 03:00:00 37.5 30 8.4
01-06-1998 03:00:00 37.5 35 8.3
01-06-1998 03:00:00 37.5 40 8.4
01-06-1998 03:00:00 37.5 45 8.6
01-06-1998 03:00:00 40 25 7.8
01-06-1998 03:00:00 40 30 7.6
01-06-1998 03:00:00 40 35 7.5
01-06-1998 03:00:00 40 40 7.5
01-06-1998 03:00:00 40 45 7.6
01-06-1998 03:00:00 42.5 25 7.1
01-06-1998 03:00:00 42.5 30 6.9
01-06-1998 03:00:00 42.5 35 6.8
01-06-1998 03:00:00 42.5 40 6.7
01-06-1998 03:00:00 42.5 45 6.7
01-06-1998 03:00:00 45 25 7.1
01-06-1998 03:00:00 45 30 6.9
01-06-1998 03:00:00 45 35 6.8
01-06-1998 03:00:00 45 40 6.7
01-06-1998 03:00:00 45 45 6.7

假设我有两个文件,想将整个数据写到一个文本文件中。

LAT / LON1 / LON2 / DLON / H 的标签的第一个浮点值是纬度值。

LAT / LON1 / LON2 / DLON / H 的子标签数据分别为

  • 第一个值(经度25°)
  • 第二个值(经度30°)
  • 第三个值(经度35度)
  • 第四值(经度40°)
  • 第5个值(经度45°)

所有经度值* 0.1

0 个答案:

没有答案