gpt4 book ai didi

c - 使用 sed 检测和连接多行结构

转载 作者:太空宇宙 更新时间:2023-11-03 23:34:28 25 4
gpt4 key购买 nike

所以,假设我在一段代码中有这样的某种类型的数据结构:

struct apple {
int type, color;
Apple app;
};

// ... more code

我想获取完整的结构定义(以及文件中的任何其他结构定义)并将它们压缩成一行(因此文件产品看起来像这样:

struct apple { int type, color; Apple app; };

).

这是家庭作业的一部分。不到一周前,我刚刚在讲座中学习了 sed,但我不确定如何做这样的事情。因此,如果您对直接回答问题感到不自在,如果您能为我指明正确的方向,以便我可以学习如何正确使用此实用程序,我将不胜感激。

我假设可以通过检测结构定义来使用 sed 完成任务,然后继续将每一行读入全局缓冲区,直到找到 }(我假设结构定义中没有 union 或任何内容).虽然这个程序似乎有很多功能,但我找不到任何关于它的精彩介绍。

最佳答案

我会按照以下方式做一些事情:

$ sed -n '/struct/,/};/p' input | sed -e ':a;N;$!ba;s/\n//g'
struct apple { int type, color; Apple app;};

构造 /foo/,/bar/ 选择模式之间的所有行(包括)。

N 命令将换行符和下一行附加到当前模式空间。然后执行著名的 s/// 命令,它将换行符替换为空,即行连接。

关于c - 使用 sed 检测和连接多行结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com