fileAで文字列を見つけ、その文字列からいくつかのテキストを選択し、fileBで文字列を置き換える方法は?

fileAで文字列を見つけ、その文字列からいくつかのテキストを選択し、fileBで文字列を置き換える方法は?

ファイルAとファイルBがあります。存在するファイルA、私のスクリプトが特定のstringAを見つけることができるようにしたいです。次に、sedコマンドを使用してstringAの一部のみを貼り付けます。文書B(特定のstringBの一部に置き換えられました文書B)。

例えば。

ファイルA
アジジカ・ハステッド
アシジック・ダジド
推奨重量:0.546(関心文字列です)

文書B
アスダギスクダ
クザッシュ・ザフステッド
ワーキンググループHT      0.495(FILE BIの交換が必要な部分です)

stringA(0.546)のテキストを選択し、fileBの0.495を0.546に置き換えたいので、新しいfileBは次のようになります。

新しいファイルB
アスダギスクダ
クザッシュ・ザフステッド
重量0.546

sed私は同じファイル内のstringAをstringBに置き換えますが、私のstringsAとBが異なるファイルにあるので、使用するのは私には適していません。また、「ランダムに」(プログラミング方式で)生成されます。

ベストアンサー1

sed(および最初のファイルと一致する他のツール)を使用して実際にこれを行うことができます。たとえば、

$ sed -E "s/(WGHT\s*).*/\1$(grep -oP 'Recommended Weight: \K[0-9.]+' fileA)/" fileB 
asdajskdha
kjashdjahsd
WGHT 0.546

または、まず変数に保存します。

$ wght=$(sed -En 's/Recommended Weight: *([0-9.]+)/\1/p' fileA)
$ sed -E "s/(WGHT\s*).*/\1$wght/" fileB
asdajskdha
kjashdjahsd
WGHT 0.546 

おすすめ記事