Удалить весь текст перед последним пространством в текстовом файле из CLI

Короткий ответ:

.NET - ответ Microsoft на Java, а Mono - реализация с открытым исходным кодом. Вино для родных exes и не имеет ничего общего с Mono, за исключением того, что вы можете запустить с ним среду выполнения .NET, как и любое другое собственное программное обеспечение Windows.

Длинный ответ:

Чтобы понять разницу между Wine и Mono (и .NET), вы должны понимать разницу между исполняемыми файлами исполняемого машинного кода и исполняемым файлом «common language runtime» aka «virtual machine»:

Исходные исполняемые файлы машинного кода используют коды команд, специфичные для вашего процессора, и непосредственно выполняются им. Это означает, что их нужно перекомпилировать для разных процессоров. Wine может запускать собственные исполняемые файлы машинного кода для Windows, напрямую запуская этот исполняемый код и захватывая любые вызовы библиотеки, которые он делает, перенаправляя их на собственную реализацию Win32 API.

«CLR» или «VM» исполняемые файлы не относятся к одному процессору: им требуется дополнительная часть программного обеспечения, позволяющая процессору запускать их. Mono / .NET - один из таких примеров такой системы. .NET-программам требуется среда выполнения .NET, даже когда вы запускаете их в Windows. Java работает так же.

Итак:

1) разница между Wine и Mono: Wine предназначена для запуска исполняемых исполняемых файлов исполняемого файла для Windows, а Mono предназначена для работы Mono / .NET, которые не обязательно создаются для какой-либо конкретной платформы. Установка Mono в Linux эквивалентна установке среды выполнения .NET в Windows.

2) Если программа, которую вы хотите запустить, вообще не использует .NET, вы должны использовать Wine. Моно не поможет вам вообще.

Однако, если программа использует .NET, у вас есть два варианта: любой из них может работать или не работать:

Вы можете попробовать для запуска его с помощью Mono. Это не удастся, если .NET-программа также использует собственные функции из API win32, которые делают многие (но не все) .NET-приложения для Windows. Кроме того, вы можете установить среду выполнения Microsoft .NET для Windows внутри Wine, а затем запустить приложение .NET через нее. В этом случае вы не будете использовать Mono.

3) Wine и Mono вообще не зависят друг от друга, но, как указано выше, вы можете использовать среду выполнения Microsoft .NET в Wine для запуска приложений Mono / .NET.

1
задан 3 March 2015 в 09:09

2 ответа

sed по умолчанию жадный, поэтому просто удаляйте все до последнего пробела:

sed 's/.* //'

или используйте эту awk идиому:

awk '$0=$NF'
5
ответ дан 23 May 2018 в 22:45

Попробуйте grep:

echo "2015-03-02 21:34:15      20480 dump-2015-03-02-21-34.tar" | grep -Eo "[^ ]+$"

Вы также можете использовать tr и cut вместе:

echo "2015-03-02 21:34:15      20480 dump-2015-03-02-21-34.tar" | tr -s ' ' | cut -d' ' -f4

Зачем оставлять python

python2 -c 'print "2015-03-02 21:34:15      20480 dump-2015-03-02-21-34.tar".split()[3]'

Все выходы производятся следующим образом: dump-2015-03-02-21-34.tar

4
ответ дан 23 May 2018 в 22:45

Другие вопросы по тегам:

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