Похоже на вашу проблему под названием:Журналы отчетов об ошибках Debian-#891956 eclipse не запускается -ClassNotFoundException :org.eclipse.core.runtime.adaptor.EclipseStarter .
в этой ошибке предлагалось сделать это:
$ sudo apt-get install --reinstall libequinox-osgi-java
The debug output claimed that the framework has been found, but this was a lie since: /usr/lib/eclipse/plugins/org.eclipse.osgi_3.8.1.dist.jar was missing.
Судя по трассировке стека, также есть эта ошибка под названием:Журналы отчетов об ошибках Debian-#898086 Отсутствует символическая ссылка jar org.eclipse.osgi .
=== Log file ===
This is the log file:
!SESSION Fri Jun 15 09:10:34 CEST 2018
-----------------------------------------
!ENTRY org.eclipse.equinox.launcher 4 0 2018-06-15 09:10:34.504
!MESSAGE Exception launching the Eclipse Platform:
!STACK
java.lang.ClassNotFoundException:
org.eclipse.core.runtime.adaptor.EclipseStarter
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:626)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
=== End of log file ===
Это похоже на вашу проблему. Эта конкретная ошибка все еще активна и не имеет решения или обходного пути.
Работая над предложением, которое pLumo дал в комментарии и сделав его немного более гибким, вы можете изменить команду AWK на:
awk 'NR==1 {h=$0; next} {print $NF,$0; if ($NF>m) m=$NF} END {print (m+1),h}'
Идея состоит в том, чтобы гарантировать, что перед заголовком будет стоять большее число, чем в любой другой строке, записывая максимальное значение по всем входным данным и выводя заголовок только после обработки последней строки.
В качестве альтернативы, если ваша система поддерживает ссылки файлового дескриптора типа /dev/fd/n
, вы можете продублировать стандартный вывод всего конвейера и позволить awk
печатать строку заголовка в новый файловый дескриптор, предотвращая ее прохождение через последующие команды:
sed "s/['()]//g;s/,/:/g;s/\([0-9]\)L[ ]*$/\1/g;" |
{ awk 'NR == 1 {print >("/dev/fd/3"); next} {print $NF,$0}' |
sort -nr |
cut -f2- -d' '; } 3>&1
Вам никогда не понадобится sed при использовании awk:
$ awk -F"[',: ]+" -v OFS=' : ' '{print (NR>1) "\t" (NR==1 ? $1 OFS $2 : $3 OFS $4+0)}' file |
sort -k1,1n -k4,4nr | cut -f2-
Course : StudentCount
MCA_34 : 15
BBM_02 : 14
MBA_23 : 13
BBA_26 : 3
BCA_27 : 2
Предварительно обработайте входные данные, хранящиеся в файле с именем file, с помощью sed, а затем обработайте подстановку вывода sed для команд head-n-sort
.
{ head -n 1; sort -k3,3nr -k1,1; } < <(< file sed -Ee "y/(;',)/ ; : /;s/\s+//g;1!s/L$//;s/:/ & /")
Course : StudentCount
MCA_34 : 15
BBM_02 : 14
MBA_23 : 13
BBA_26 : 3
BCA_27 : 2
Сделано с помощью сценариев sed:
sed -e '1d' -e '2,$s/[^A-Z_0-9]/ /g' -r -e 's/\s+/;/g' -e 's/^;//g' -e 's/[A-Z];$//g' filename
выход
BCA_27;2
MCA_34;15
BBA_26;3
BBM_02;14
MBA_23;13