C sed 行号在同一行

标签 c sed execvp

我制作了一个小程序,将行号放在文件中每一行的前面!这工作得很好,但这只是一个问题。我得到的结果是:

1

发短信

2

文本二

3

文本三

但我希望输出如下:

1 Text one
2 Text two
3 Text three

我使用此代码来执行 sed 功能:

char* exec[] = { "sed", "/./=", NULL }; 
execvp(exec[0], exec);

我想我需要更改 exec[],但我不知道以什么方式!

非常感谢:D

最佳答案

sed 'N;N;N;s/\n//g;s/[0-9]*/& /' YourFile

删除\n(基于每行4行的结构,然后在第一个数字后面添加一个空格

但是为什么使用 sed 来解构可以轻松完成的事情,否则可以直接构造(cat -n,grep -n,...)?

关于C sed 行号在同一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22499305/

相关文章:

c - 为c中的结构数组动态分配内存

arrays - SED 匹配/替换 URL 并更新序列化数组计数

c - 简单的 Linux Shell - execvp() 失败

c - execvp() 在我的 shell 中不工作

c - 在 C 中将 char 数组作为参数传递为指针

c - 如何给STM32F4写一个时差函数

c - 为什么相同的变量打印不同的输出?

awk - 搜索花样并打印计数

bash - 用另一个命令的返回值替换 bash 命令输出中的子字符串(例如,将时间戳转换为日期)

c - 从 execvp 将 stdout 写入文件