ファイル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