• 赚钱入口【需求资源】限时招募流量主、渠道主,站长合作;【合作模式】CPS长期分成,一次推广永久有收益。主动打款,不扣量;

Unix sed命令替换文件中的括号

JavaScript cps12345 2个月前 (02-27) 69次浏览 0个评论

我需要在文件中替换”…”为<…>。我使用了sed ‘/^#include/s/”/</g’ file.c在这里找到的此命令,但是输出不正确。我怎样才能解决这个问题?

输入:

#include "stdlib.h"
#include "graph.h"

输出:

#include <stdlib.h<
#include <graph.h<

预期产量:

#include <stdlib.h>
#include <graph.h>

解决

如果您先使用s/”/</(否g),然后再使用s/”/>(g这里也没有),那么您会没事的:

sed '/^#include/ { s/"/</; s/"/>/; }' file.c >file-new.c

第一个替换替换第一个双引号,第二个替换替换现在修改的字符串中的第一个双引号。

要更正文件(假设您进行了就地编辑),只需<将行末尾的替换为>:

sed '/^#include/ s/<$/>/' file.c >file-new.c

这将匹配<$(<在行的末尾),并替换为>。

喜欢 (0)

您必须 登录 才能发表评论!