2

我需要插入/替换子字符串,它将按子字符串的一部分找到。有人知道怎么做吗?

输入:

#include  "PARTblabla.h"

输出:

#include  "src/PARTblabla/PARTblabla.h"

抽象的:

echo '#include  "PARTblabla.h"' | sed "s/\#include.*\"PART/\#include \"src\/PARTblalbal<!.h>/"
4

2 回答 2

2

我不清楚您修复了字符串的哪一部分。假设 PART 是固定的并且 blabla 部分可以变化:

sed 's!^\(#include *\)"PART\([^"]*\).h"!\1"src/PART\2/PART\2.h"!' input
于 2012-12-07T00:47:36.433 回答
1

这可能对您有用(GNU sed):

sed -r 's|(#include.*")(PART)|\1src/\2|' file

或者

sed -e 's|\(#include.*"\)\(PART\)|\1src/\2|' file
于 2012-12-07T06:59:23.390 回答