Как я могу распечатать все кроме последних n символов в ударе?

Для под управлением Соляриса в dom0, нет. Oracle подвергла эвтаназии его. xVM работал над Солярисом 10, но он повредился во время цикла разработки OpenSolaris (он полностью повредился и неприменимый на snv_134, но вероятно ранее). Ни Oracle, ни сообщество Illumos не проявили интереса к получению ядра Соляриса, работающего в dom0.

Замещающим продуктом Oracle является OracleVM. На Sparc, который означает Солярис LDOMs. На x86, который означает Xen с Oracle Linux в dom0.

В сообществе Illumos Joyent портировал KVM Linux к ядру Illumos. Это доступно, по крайней мере, от SmartOS, но я полагаю, что это также доступно в OpenIndiana и OmniOS **.

Если Вы хотите Xen, я предлагаю Debian. Если Вы хотите ZFS*, я предлагаю OmniOS или SmartOS и использую KVM.


* FreeBSD все еще не может выполнить dom0.
** Поскольку годы передали, KVM доступен в большинстве, если не все illumos дистрибутивы и Joyent возродили зоны LX-бренда как часть SmartOS и находятся теперь также в OmniOS.

3
20.04.2014, 12:27
2 ответа

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

command | head -c-10

удалит последние 10 байтов из вывода команды .

Цитата из man head :

   -c, --bytes=[-]K
          print the first K bytes of each  file;  with  the  leading  `-',
          print all but the last K bytes of each file

Поскольку вы специально упомянули, что 10 символов, которые нужно удалить, будут находиться в одной строке, вы также можете использовать sed . Перенаправьте вывод команды по адресу:

sed '$s/\(.\{10\}\)$//'

или, если ваш sed поддерживает расширенное регулярное выражение:

sed -r '$s/.{10}$//'

Синтаксис будет аналогичным с использованием perl :

perl -pe 's/.{10}$// if eof'
6
27.01.2020, 21:10

Вы должны использовать perl :

$ perl -lpe '$_=substr($_,0,-10) if eof' file
SELECT 'A', 1, GETDATE() UNION ALL
SELECT 'B', 2, GETDATE() UNION ALL
...
SELECT 'Z', 2, GETDATE()
3
27.01.2020, 21:10

Теги

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