我有一个包含
之类的句子的输入文件typedef void * __builtin_va_list;
我想用
替换它typedef void ** __builtin_va_list;
我尝试使用sed如下
sed 's/void * __builtin_va_list/void ** __builtin_va_list/g' FILE.txt
但它不起作用。我认为这是由于*表达的参与。我们如何处理这种情况?
答案 0 :(得分:1)
你需要逃离星星:
sed 's/void \* __builtin_va_list/void \*\* __builtin_va_list/g' FILE.txt
答案 1 :(得分:1)
您可以将此搜索/替换用于捕获的组和反向引用:
sed -r 's/(void \*)( __builtin_va_list)/\1*\2/g' file
typedef void ** __builtin_va_list;
还要记住*
需要转义,因为它是特殊的正则表达式元字符。