正则表达式 – 如何按长度对一系列行进行排序?

前端之家收集整理的这篇文章主要介绍了正则表达式 – 如何按长度对一系列行进行排序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
通常,我只想按照我们的源头和头文件的长度排列所有我的#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-" }'

猜你在找的正则表达式相关文章