あるファイルのデータを別のファイルに追加

あるファイルのデータを別のファイルに追加

そのため、次のCSVファイルを生成するスクリプトがあります。

Timestamp,Latitude,Longitude,MinSeaLevelPressure,MaxIntensity
1800 UTC MAY 16,
0000 UTC MAY 17,
0600 UTC MAY 17,
1200 UTC MAY 17,
1800 UTC MAY 17,
0000 UTC MAY 18,
0600 UTC MAY 18,
1200 UTC MAY 18,
1800 UTC MAY 18,
0000 UTC MAY 19,
0600 UTC MAY 19,
1200 UTC MAY 19,
1800 UTC MAY 19,
0000 UTC MAY 20,
0600 UTC MAY 20,
1200 UTC MAY 20,
1800 UTC MAY 20,
0000 UTC MAY 21,

私が望むのは、次の2番目の画像に示すように、別のファイルのデータを追加し、一致するように各行の最後に追加できるようにコードを編集することです。

28.0
28.9
29.6
30.3
31.0
31.9
33.1
34.4
35.5
36.2
36.8
37.0
36.9
36.2
35.5
34.6
33.7
32.8

私の現在のコードは次のとおりです。

#! /bin/bash
inputFileString=$1
outputFileString=$2
touch "$2"
chmod 755 "$2"
echo "" > lat.txt
sed -i '1d' lat.txt
rm $2
test=(0,1,2,3,4,5,6,7,8,9)
echo "Converting $inputFileString -> $outputFileString ..."
echo "" >  $2
awk -F '[<>]' '/<lat>/ {print $3}' $1 >> lat.txt
grep -Eo '<dtg>.*</dtg>' $1 | cut -c 6-20  >> $2
sed -i 's/$/,/' $2
#awk '{print $0, "$variable"}' $2 >> $2
#awk -F '[<>]' '/<lon>/ {print $3}' $1 >> $2
sed -i '1d' $2
sed -i '1i Timestamp,Latitude,Longitude,MinSeaLevelPressure,MaxIntensity' $2
echo Done!

ちなみに、私のコードはkmlファイルの入力を受け入れ、特定のデータを抽出し、そのデータを使用してcsvファイルを生成します。

ベストアンサー1

Raku(以前のPerl_6)の使用

raku -e 'my @a = @*ARGS[0].IO.lines.skip; my @b = @*ARGS[1].IO.lines;
         "Timestamp,Latitude,Longitude,MinSeaLevelPressure,MaxIntensity".put; 
         .put for [Z] @a, @b;' ethan1.txt ethan2.txt

出力例:

Timestamp,Latitude,Longitude,MinSeaLevelPressure,MaxIntensity
1800 UTC MAY 16, 28.0
0000 UTC MAY 17, 28.9
0600 UTC MAY 17, 29.6
1200 UTC MAY 17, 30.3
1800 UTC MAY 17, 31.0
0000 UTC MAY 18, 31.9
0600 UTC MAY 18, 33.1
1200 UTC MAY 18, 34.4
1800 UTC MAY 18, 35.5
0000 UTC MAY 19, 36.2
0600 UTC MAY 19, 36.8
1200 UTC MAY 19, 37.0
1800 UTC MAY 19, 36.9
0000 UTC MAY 20, 36.2
0600 UTC MAY 20, 35.5
1200 UTC MAY 20, 34.6
1800 UTC MAY 20, 33.7
0000 UTC MAY 21, 32.8

上記は、Perlシリーズのプログラミング言語であるRakuで書かれた答えです。タイムスタンプファイルはコマンドラインから読み取られます@*ARGS[0](タイムスタンプヘッダー行はskip-pedされ、後で再度追加されます)。数値列はコマンドラインからとして読み込まれます@*ARGS[1]。各ファイルはオブジェクトに変換され、分解され、配列IOsumlinesとして@a保存されます。その後、@b合計は要素ごとに一緒に圧縮されます。@a@b[Z]put

https://docs.raku.org/routine/Z
https://raku.org

おすすめ記事