shell - Shell - 删除重复的段落
问题描述
我有一个 .sh 文件,里面有很多重复的释义。现在我需要删除这些重复项,只保留一个
例如
**startkeyword**
today is good
how are you
apple
**endKeyword**
**startkeyword**
today is good
how are you
apple
**endKeyword**
**startkeyword**
do you like apple
I like apple
**endKeyword**
**startkeyword**
today is good
how are you
**endKeyword**
**startkeyword**
today is good
how are you
apple
**endKeyword**
结果应该是:
**startkeyword**
today is good
how are you
apple
**endKeyword**
**startkeyword**
do you like apple
I like apple
**endKeyword**
**startkeyword**
today is good
how are you
**endKeyword**
如何在 .sh 文件中执行此操作?免费使用 sed、awk 或 tr
解决方案
如果您不介意删除星号**
awk -v RS='[*][*]\n[*][*]' '{gsub(/[*]|\n$/,""); if(!visited[$0]++) print $0}' file
输出
startkeyword
today is good
how are you
apple
endKeyword
startkeyword
do you like apple
I like apple
endKeyword
startkeyword
today is good
how are you
endKeyword
推荐阅读
- c - 过程 - 子或孙?
- ruby-on-rails - 使用索引器从哈希中获取值
- excel - 受数据影响的 Excel 方程
- linux - 将参数发送到网站中的搜索框并使用 Shell 脚本接收结果
- keras - Rasa 中生成的训练数据量
- r - R dplyr cumsum 每组
- three.js - GLTFLoader 错误:无法读取未定义的属性“itemStart”
- c# - 多个应用程序使用一个dll?
- c# - Xamarin DataTemplate 定时刷新viewModel,iOS 刷新整个页面,如何像Android 一样只更新进度条?
- c++ - 无法从“初始化列表”转换为模板