約100,000個のファイルに次のヘッダーがあります。各行を個別に抽出し、各レコードをExcelにマージしたので、時間が足りなくなり、データを抽出する便利な方法を探しています。
X-RSMF-Generator:RSMFジェネレータのサンプルライブラリ
X-RSMFバージョン:1.0.0
X-RSMFイベント数:53
X-RSMF-開始日:2022-09-20T04:33:11-04:00
X-RSMF終了日:2022-09-20T16:47:56-04:00
X-RSMF-グループID:GRP000000118
X-RSMF補助グループID:GRP000000118_D_20220920
X-RSMFインクルードが削除されました:間違った
X-RSMF-アプリケーション:ネイティブメッセージ
X-RSMF参加者:1人称<5156242756> 2人称、2人称
サム[Eメール保護]<21243210277> 4人*** <345278652345>
MIMEバージョン:1.0
すべてのファイルにすべての行が存在するわけではなく、最後のフィールドに複数の行を含めることができます。 MIME バージョン: 1.0 - 利用できるようです。MIMEバージョン:1.0停止で。また、各項目行のデータのみが必要です。 ":" (コロン空白) 前の内容はすべてフィールドヘッダーなので無視できます。
私は各ラインとパイプをAWKに接続できると思いながらsedを使い始めました。各柱を作ります。
#!/bin/sh
shopt -s nullglob
FILES=/mnt/c/Temp/rsmf/*.rsmf
for f in $FILES
do
#echo "Processing $f"
sed -rn \
-e '/^X-RSMF-BeginDate:/{
s/X-RSMF-BeginDate: //
s/T/ /
s/-0[45]:00/ /
s/X-RSMF-Application://
h
#p
}' \
-e '/^X-RSMF-EndDate:/{
s/X-RSMF-EndDate: //
s/T/ /
s/-0[45]:00/ /
H
#p
}' \
-e '/^X-RSMF-GroupID:/{
s/X-RSMF-GroupID: //
H
x
s/\r\n//gp
}' \
$f
done
結果 -
2022-10-05 12:54:27 2022-10-05 12:54:27 GRP000000001
2022-10-05 11:48:18 2022-10-05 11:48:18 GRP000000002
この問題を議論する前に、この特定のプロジェクトのベストプラクティスとケースに関するアドバイスを求めたいと思います。
アイデア? ?
ベストアンサー1
そしてアッ:
awk -F': ' 'BEGIN{ORS=" "}$1=="MIME-Version"{exit}{print $2}END{print "\n"}' file