MST

星途 面试题库

面试题:Bash中sed处理复杂文本结构

给定一个包含多个段落的文本文件article.txt,每个段落以空行分隔。要求使用sed命令在每个段落的开头添加'Paragraph:',并且将段落中所有的'computer'替换为'PC',请写出具体的sed命令。
38.9万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
sed -E ':a;N;$!ba;s/\n\n/Paragraph:\n/g;s/computer/PC/g' article.txt

解释:

  1. :a;N;$!ba:这部分是一个循环结构。N命令将下一行读入模式空间,$!ba表示如果不是文件末尾,跳转到标记a处,从而将整个文件读入模式空间,使得段落之间的空行能被统一处理。
  2. s/\n\n/Paragraph:\n/g:将段落之间的两个换行符替换为Paragraph:加上一个换行符,实现在每个段落开头添加Paragraph:
  3. s/computer/PC/g:将段落中所有的computer替换为PC