Ray*_*cos 2 scripting sed text-processing
我有一个文件A和一个文件B。在fileA 中,我希望我的脚本找到特定的 stringA;然后,使用sed
命令仅将 stringA 的一部分粘贴到文件 B 上(替换为 fileB 中特定 stringB 的一部分)。
例如。
文件A 阿什杰卡什杰德 阿吉克达杰斯德 推荐权重:0.546(这是感兴趣的字符串)
文件B 阿斯达什达 克贾什贾斯德 WGHT 0.495(这是FILE BI需要替换的部分)
我只想选择 stringA (0.546) 的文本并将 fileB 上的 0.495 替换为 0.546,因此,新的 fileB 将是:
新文件B 阿斯达什达 克贾什贾斯德 WGHT 0.546
使用 onlysed
对我不起作用,因为它用同一文件中的 stringB 替换了 stringA,但我的 stringsA 和 B 来自不同的文件。此外,它们是“随机”生成的(通过程序)。
您实际上可以使用sed
(和另一个工具来匹配第一个文件)。例如:
$ sed -E "s/(WGHT\s*).*/\1$(grep -oP 'Recommended Weight: \K[0-9.]+' fileA)/" fileB
asdajskdha
kjashdjahsd
WGHT 0.546
Run Code Online (Sandbox Code Playgroud)
或者先将它保存在一个变量中:
$ wght=$(sed -En 's/Recommended Weight: *([0-9.]+)/\1/p' fileA)
$ sed -E "s/(WGHT\s*).*/\1$wght/" fileB
asdajskdha
kjashdjahsd
WGHT 0.546
Run Code Online (Sandbox Code Playgroud)