sed - 如何使用substring作为将通过子串的一部分找到的变量?

时间:2012-12-07 00:35:19

标签: search insert replace sed substring

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

输入:

#include  "PARTblabla.h"

输出:

#include  "src/PARTblabla/PARTblabla.h"

摘要:

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

2 个答案:

答案 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