linux 把文件a.txt和b.txt的内容加上行号(空白行不加),然后合并到文件c.txt中。
时间: 2024-02-25 20:51:28 浏览: 109
面试题:把a.txt、b.txt文件合并写到c.txt文件
可以使用 `cat` 命令和管道符 `|` 结合使用,以及 `grep` 命令和 `sed` 命令来实现:
```
cat a.txt b.txt | grep -v "^$" | sed = | sed 'N;s/\n/ /' > c.txt
```
解释如下:
- `cat a.txt b.txt`:将 a.txt 和 b.txt 文件的内容合并,并通过管道符 `|` 传递给下一个命令。
- `grep -v "^$"`:grep 命令用于查找文本,选项 -v 表示查找不匹配正则表达式的行,正则表达式 "^$" 表示空白行,因此这个命令的作用是过滤掉空白行。
- `sed =`:sed 命令用于替换或删除文本,选项 = 表示在每一行前面输出该行的行号。
- `sed 'N;s/\n/ /'`:这个命令是对前一个命令的输出进行进一步处理,选项 N 表示将下一行内容追加到当前行后面,`\n` 表示换行符,因此这个命令的作用是将每两行内容合并成一行。
- `> c.txt`:将最终的输出保存到 c.txt 文件中。
通过上述命令,文件 c.txt 中会包含文件 a.txt 和 b.txt 的内容,并且每一行都会加上行号,空白行会被过滤掉。
阅读全文