前端之家收集整理的这篇文章主要介绍了
正则表达式 – 如何按长度对一系列行进行排序?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
通常,我只想按照我们的源头和头
文件的长度排列所有我的#include。
vim允许我以类似的方式对字母数字进行排序:{range} sort u。
在vim中,你如何按行的长度对行范围进行排序?这样线条越短,线条越长。
搜索互联网,我发现这个:
:% s/.*/\=printf("%03d",len(submatch(0)))."|".submatch(0)/ | sor n | %s/..../
但是,这只能对整个文件进行排序,对我而言是黑魔法。我试图找出如何做同样的范围,例如从第4行到第18行,如:4,18 s / …你有什么想法吗?
用Awk过滤视觉选择
在vim中执行此操作的一种方法是在排序之前使用awk的length()函数过滤视觉选择。例如:
:'<,'> ! awk '{ print length(),$0 | "sort -n | cut -d\\ -f2-" }'