这里是我想要从中提取信息的一组文件的典型示例。我编写了以下 bash 脚本来提取信息。
#!/usr/bin/env bash
for g in results*.out
do
n=$(grep "alpha and" $g | awk 'FNR == 1 {print $3}')
grep -C3 " $n f = " $g | tail -n7 | awk '{print $1, $4}'
done
此代码提取信息。目前输出如下。
133 9.978034280156940E-01
134 9.882312569460522E-01
135 9.857557759037890E-01
136 9.836946621679052E-01
137 9.176237326165843E-01
138 8.651065823914026E-01
139 6.001882297648449E-01
140 5.259895413279251E-01
141 4.535203239962572E-01
142 2.766582418456879E-01
143 1.500113298327398E-01
144 1.499040569674273E-01
145 7.011613729829022E-02
146 2.599791497545315E-02
147 7.575528522101296E-03
148 3.395519400025279E-03
149 6.920371418226563E-04
150 1.051343803656766E-04
145 9.995666620820959E-01
146 9.986918456435790E-01
147 9.983331233456884E-01
148 9.947190520967900E-01
149 9.901591012186634E-01
150 9.820905188119619E-01
151 9.722213023512692E-01
152 8.606706212831918E-01
153 8.330507106817059E-01
154 6.896708621510191E-01
155 6.053542290275506E-01
156 3.608448999217511E-01
157 2.986244092739729E-01
158 1.494558992207998E-01
159 1.493493662474684E-01
160 4.230090712259945E-02
161 3.843042215093445E-02
162 3.252291954526090E-02
.
.
.
1000 2.105886610839363E-03
这里所有文件的输出都保存在第一列中。但是,我想将每个文件的结果保存在 .csv 文件(例如 output.csv)的不同列中。我尝试使用 >>output.csv 保存在文件中。但这会将输出保存在第一列中,如上所述。如何将每个文件的列提取到单个文件中?
output.csv 文件(针对三个文件)应该是这样的。
133 9.97803428156940E-01 144 1.49904059674273E-01 153 8.33050106817059E-01
134 9.88231269460522E-01 145 7.01113729829022E-02 154 6.89670621510191E-01
135 9.85755775037890E-01 146 2.59971497545315E-02 155 6.05354290275506E-01
136 9.83694661679052E-01 147 7.57552822101296E-03 156 3.60844899217511E-01
137 9.17623732615843E-01 148 3.39551940025279E-03 157 2.98624409239729E-01
138 8.65106583914026E-01 149 6.92037118226563E-04 158 1.49455899207998E-01
139 6.00188229764449E-01 150 1.05134383656766E-04 159 1.49349362474684E-01