我需要插入/替换子字符串,它将按子字符串的一部分找到。有人知道怎么做吗?
输入:
#include "PARTblabla.h"
输出:
#include "src/PARTblabla/PARTblabla.h"
抽象的:
echo '#include "PARTblabla.h"' | sed "s/\#include.*\"PART/\#include \"src\/PARTblalbal<!.h>/"
我不清楚您修复了字符串的哪一部分。假设 PART 是固定的并且 blabla 部分可以变化:
sed 's!^\(#include *\)"PART\([^"]*\).h"!\1"src/PART\2/PART\2.h"!' input
这可能对您有用(GNU sed):
sed -r 's|(#include.*")(PART)|\1src/\2|' file
或者
sed -e 's|\(#include.*"\)\(PART\)|\1src/\2|' file