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