Se não dois pontos em <something>
, você poderia dizer:
sort -t : -Vk 3 file
Eu tenho um arquivo com o formato de linha da seguinte forma:
<something> <file_name> type:file <something> size:<filesize> <something>
Eu gostaria de ordenar numericamente pelo campo "filesize" identificado pelo rótulo "size:". O número da chave simples / offset passado normalmente para ordenar o programa não funciona porque não há um separador estrito - vários espaços podem ocorrer antes do rótulo "size:" - por exemplo, em "file_name". Existe alguma maneira de classificar a partir da linha de comando usando o rótulo anterior como um identificador de campo?
é difícil responder sem uma amostra.
tente algo como (pode ser onlined, não há necessidade de \ if last char is |)
awk '{for(i=1;i<=NF;i++)
if ( substr($i,1,5) == "size:" ) { print substr($i,6) " " $0 ; next ; }}' file |
sort -n | awk '{$1="" ; print } '
basicamente
Tags command-line linux sorting