我有一个包含重复条目的文件。条目条目以日期开头,一个空行将这两个条目分隔开。如何使用排序命令或 uniq 命令对日期进行排序:
* Mon Jan 29 2001 Bernhard Rosenkraenzer <bero@mail.com>
- Some fixes to init scripts
* Wed Jan 17 2001 Bernhard Rosenkraenzer <bero@mail.com>
- Add missing man pages, fix up init script (Bug #17676)
- Can be patched in for future release.
* Thu Feb 1 2001 Trond Eivind Glomsrød <teg@mail.com>
- Fix check for ipchains
我使用了这样的排序命令:
sort -n -t" " -k5 -k3M -k4
但它没有捕获日期之后的行,我需要对日期+contentforthatdate 进行排序。
最佳答案
根据@jchevali 的评论 - 只需要找到一个 awk 和 tr 都可以优雅地处理的可打印字符,该字符不在要处理的文本中:
awk '/^*/{printf "%s ^",$0} /^-/{printf "%s ^",$0} /^[ \t]*$/{printf "\n"}' paras | sort -n -t" " -k5 -k3M -k4 | tr '^' '\n'
* Wed Jan 17 2001 Bernhard Rosenkraenzer <bero@mail.com>
- Add missing man pages, fix up init script (Bug #17676)
- Can be patched in for future release.
* Mon Jan 29 2001 Bernhard Rosenkraenzer <bero@mail.com>
- Some fixes to init scripts
* Thu Feb 1 2001 Trond Eivind Glomsrød <teg@mail.com>
- Fix check for ipchains
关于linux - 在每个部分的标题中按 (DOW MON DD YY) 日期对分成多个部分的文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53771171/