将部分复制到新文件中
我有一个文本文件,
!--- Marker one --!
aaaa
bbbb
cccc
dddd
!--- Marker two --!
eeee
ffff
!--- Marker three --!
gggg
hhhh
iiii
我需要使用 Bash 将标记二(直到标记二的末尾)复制到一个新文件中。
!--- Marker two --!
eeee
ffff
成为一个单独的文件。
I have a text file,
!--- Marker one --!
aaaa
bbbb
cccc
dddd
!--- Marker two --!
eeee
ffff
!--- Marker three --!
gggg
hhhh
iiii
And I need to copy from Marker two (till the end of Marker two) into a new file, using Bash.
!--- Marker two --!
eeee
ffff
Becomes a separate file.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
awk
bash
sed
awk
bash
sed
使用“sed”可以做什么的经典案例:
唯一的问题是第一个标记在数据中出现多次。模式匹配本节的开头和下一节的开头;大括号内的命令删除第二部分开头的行,并打印所有其他行。
您还可以使用“w”命令处理多个此类模式以分隔文件(匹配方案略有不同 - 但如果需要,可以适应上面的模式):
等等。
Classic case of what you can do with 'sed':
The only gotcha is if the first marker appears more than once in the data. The patterns match the start of section and start of the next section; the commands within the braces delete the line for the start of the second section, and print all the other lines.
You can also process multiple such patterns to separate files using the 'w' command (slightly different matching scheme - but can be adapted to the one above if need be):
Etc.