すべての専門家
同じディレクトリに2種類のファイルがあります
例1)Record1.txt(レコード2、レコード3、レコード4...)
11111 absda qwedc
11112 uiyds dqeds
11113 eqwev jfsec ...
ex2)Summary1.txt(要約2、要約3、要約4...)
----some data is written----
.....
.....
***RESULT 111.114 30.344 90.3454*** OTHERNUMBER#1 OTHERNUMBER#2 .....
.....
.....
私がしたいことは抽出です。結果X(数値) Y(数値) Z(数値)要約#.txtレコード。その後、その場所をそのレコード#.txtに配置し、次のようにいくつかの情報を追加したいと思います。
X Y Z
111.114 30.344 90.3459
11111 absda qwedc
11112 uiyds dqeds
11113 eqwev jfsec ...
したがって、最終ファイルRecord#.txtを上に表示したいと思います。私はsedとcatを試しましたが、どちらも失敗しました。
よろしくお願いします!
ベストアンサー1
私が正しく理解した場合、私の提案は次のとおりです。
for i in record*.txt; do
xyz=$(grep -oP "(?<=RESULT ).*(?=\*\*\*)" $i)
sed -i "1 iX Y Z\n$xyz\n" summary${i//record/}
done
名前付きファイルを繰り返します。record*.txt
for i in record*.txt; do
RESULT
との間の文字列をキャプチャします。***
xyz=$(grep -oP "(?<=RESULT ).*(?=\*\*\*)" $i)
ファイルの最初の行にXYZを追加し、その後にキャプチャされたパターンを追加します。summary*.txt
sed -i "1 iX Y Z\n$xyz\n" summary${i//record/}