我有一个这样标记的文档,带有“ q”标记的是一组文本的开头:
q What animals live in the forest?
Rabbits.
Fish and crocodiles.
Bears and llamas.
q What animals live in the desert?
Cats.
Rhinos and deer.
q What animals live in the sky?
Flying fish.
Birds and eagles.
我需要在每个之间添加一些空格,以使所有内容向下移动。第一行以“ q”开头,发送到第10行,第二行以“ q”开头,发送到第20行,第三行到30行,依此类推。其他行被简单地向下推,但保持不变组文字。手动执行此操作很困难,因为在许多此类格式化文件中都有许多此类条目。
示例输出:
q What animals live in the forest?
Rabbits.
Fish and crocodiles.
Bears and llamas.
q What animals live in the desert?
Cats.
Rhinos and deer.
q What animals live in the sky?
Flying fish.
Birds and eagles.
是否有使用BASH工具的解决方案来实现这一目标?
答案 0 :(得分:1)
sed '2,$s/^q /\n\n\n\n\n\nq /'
sed
的作用:对于第二行(2
)和文件结尾(,$
)之间的每一行,如果一行以q
开头({{ 1}}),用5个换行符和一个s/^q
(q
)替换单个q
。