Linux 使用'nested'字段排序



我有一个大文件,其中包含以下格式的行:

field1:field2:field3:field4:field5

我想在field4上排序.但是,field4本身是这样"细分"的:

field41_field42_field43_field44

排序field4的命令是

sort -t_ -k1,1d -k2,2g -k3,3g -k4,4g

所以我要做的是按:拆分每一行,然后将第四个字段拆分_并对其执行指定的排序。有没有简单的方法可以做到这一点?

可以在此处找到一小部分数据。

我自己不喜欢这样 - 您可以通过暂时将第四个字段复制到记录的开头,按它排序,然后将其删除来执行施瓦茨变换

awk -F':' -vOFS=':' '{print $4,$0}' file | 
sort -k1,1d -k2,2n -k3,3n -k4,4n -t"_" | 
cut -f2- -d":"

相关内容

  • 没有找到相关文章

最新更新