Как распечатать файлы с разными именами, отсортированные по одной части их имя?

Выполните следующее:

sudo update-alternative --config java 

Выберите openjdk8 с вводом их количества в качестве java по умолчанию.

sudo update-alternative --config javac

Выберите openjdk8 с вводом их количества по умолчанию javac.

sudo update-alternative --config javaws 

Выберите openjdk8 с вводом их количества в качестве javaws по умолчанию.

Другой способ - получить jdk (Java Developer's Kit). Я думаю, что jdk лучше, чем openjdk с сайта oracle и следуйте моим инструкциям по их установке на Linux.

  1. скачайте jdk
  2. извлеките их
  3. переместите их в другую папку /usr/share/jvm/ или другую директорию
  4. получите разрешение на запуск программ bin в директории bin в папке вашего jdk
  5. используя эти команды для установки jdk:

    sudo update-alternative --install "/usr/bin/java" "java" "/yourdirectoryjdk/bin/java" 1
    
    sudo update-alternative --install "/usr/bin/javac" "javac" "/yourdirectoryjdk/bin/javac" 1
    
    sudo update-alternative --install "/usr/bin/javaws" "javaws" "/yourdirectoryjdk/bin/javaws" 1
    
    sudo update-alternative --install "/usr/bin/jps" "jps" "/yourdirectoryjdk/bin/jps" 1
    
  6. затем вы увидите ваш новый jdk в списке альтернативных java программ в Linux

    sudo update-alternative --config java 
    
0
03.03.2018, 23:09
3 ответа

awk+sort+cutcombinación:

awk -F'_' '{ $0=$NF OFS $0 }1' files_list.txt | sort | cut -d' ' -f2-
  • -F'_'-separador de campo
  • $NF-último campo (p.5348696.out)
  • $0=$NF OFS $0-anteponga el registro actual $0con el valor del último campo $NFpara una clasificación más sencilla (, p.5348757.out n2+_PiU_w4_5348757.out)
  • cut -d' ' -f2--campos de filtrado a partir del 2

La salida:

n2+_PiU_w1_5348696.out
n2+_PiU_w1_5348729.out
n2+_PiU_w1_5348742.out
n2+_PiU_w2_5348755.out
n2+_PiU_w4_5348757.out
n2+_PiU_st3_w3_part5_5630720.out
n2+_PiU_st3_w3_part6_5630721.out
n2+_PiU_st3_w3_part4_5630813.out
n2+_PiU_st3_w3_part6_5630814.out
0
28.01.2020, 02:32

Con reciente (> 4.0 )GNU awk, utilizando una matriz asociativa ingresada en el campo numérico (segundo -a -último ):

printf '%s\0' * | gawk '
  BEGIN {
    RS="\000"; FS="[_.]"; 
    PROCINFO["sorted_in"]="@ind_num_asc"
  } 
  {
    a[$(NF-1)]=$0
  } 
  END {
    for (k in a) print a[k]
}' 

ej.

printf '%s\0' * | gawk 'BEGIN{RS="\000"; FS="[_.]"; PROCINFO["sorted_in"]="@ind_num_asc"} {a[$(NF-1)]=$0} END {for (k in a) print a[k]}' 
n2+_PiU_w1_5348696.out
n2+_PiU_w1_5348729.out
n2+_PiU_w1_5348742.out
n2+_PiU_w2_5348755.out
n2+_PiU_w4_5348757.out
n2+_PiU_st3_w3_part5_5630720.out
n2+_PiU_st3_w3_part6_5630721.out
n2+_PiU_st3_w3_part4_5630813.out
n2+_PiU_st3_w3_part6_5630814.out

De manera similar, usando un hash perl:

printf '%s\0' * | perl -F'[_.]' -0ne '
  $h{$F[$#F-1]} = $_ }{ for $k (sort { $a <=> $b } keys %h) {print "$h{$k}\n"}
'
1
28.01.2020, 02:32

Con zshglobos:

$ printf '%s\n' *_<->.out(noe'(REPLY=${REPLY##*_})')
n2+_PiU_w1_5348696.out
n2+_PiU_w1_5348729.out
n2+_PiU_w1_5348742.out
n2+_PiU_w2_5348755.out
n2+_PiU_w4_5348757.out
n2+_PiU_st3_w3_part5_5630720.out
n2+_PiU_st3_w3_part6_5630721.out
n2+_PiU_st3_w3_part4_5630813.out
n2+_PiU_st3_w3_part6_5630814.out
  • <->:cualquier secuencia de dígitos(<x-y>sin límite)
  • (... ):calificador global
  • n:orden numérico
  • oe'(code)':pedido basado en la evaluación decode:
  • REPLY=${REPLY##*_}:la clave de clasificación es la parte posterior a la última_
1
28.01.2020, 02:32

Теги

Похожие вопросы