Вывод символа табуляции в окне терминала

Определение того, какой двоичный файл выполняется, когда вы вводите только имя, выполняется с помощью which и с помощью readlink вы можете сжать процесс до одной строки.

readlink -e $ (which java)

readlink -e печатает значение символьной ссылки или канонического имени файла, а -e гарантирует, что оно рекурсивно следует за каждым компонентом.

tony@trinity:~$ readlink -e $(which java)
/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java

примечание: у меня не установлен javac на машине, на которой я это тестировал, поэтому я просто использовал java, но вышеперечисленное будет работать с любым двоичным файлом.

Вы также, кажется, спрашиваете, какая версия java находится в определенной папке? Для этого вы просто делаете это

/full/path/java -version

, что не позволяет Linux искать путь и напрямую находить двоичный файл java. В вашем случае

/usr/lib/jvm/java-7-oracle/javac -version
5
26.11.2016, 11:56
3 ответа

Если вы используете

printf "xx\t\tyy"

, он должен расшириться до реального символа табуляции. Поведение echo в отношении bash было неустойчивым. Я протестировал bash на своем Debian 7 и обнаружил, что ни echo -t , ни / bin / echo -t не содержат табуляции, а printf (чтобы убедиться, что вывод перенаправляется в файл). Вот сценарий:

#!/bin/bash
echo -t "xx\t\tyy"
echo done
/bin/echo -t "xx\t\tyy"
echo done
echo "xx\t\tyy"
echo done
/bin/echo "xx\t\tyy"
echo done
printf "xx\t\tyy"
echo done

и вывод на терминал:

-t xx\t\tyy
done
-t xx\t\tyy
done
xx\t\tyy
done
xx\t\tyy
done
xx              yydone

Это отличается от дополнительной проблемы размещения символов на экране терминала. Как правило, большинство терминалов имеют только пробелы , которые можно выбрать для вырезания / вставки (независимо от того, печатаете ли вы табуляцию или нет). Для этого -

5
27.01.2020, 20:33

Вкладка не является печатным символом. Tab - это управляющий символ, который обычно перемещает курсор (но не в конец строки), оставляя символы, через которые он прыгает, без изменений.

gnome-terminal (и другие эмуляторы на основе vte ) имеют специальный прием, который пытается сохранить вкладки для целей копирования и вставки, однако он все равно теряет их при мягком переносе строки. Другие эмуляторы также могут иметь такой взлом, но обычно их нет.

См. Также беседу на https://bugzilla.gnome.org/show_bug.cgi?id=769316 .

8
27.01.2020, 20:33

Немного странно, но если все вы хотите - получить результат в буфер обмена, чтобы вы могли вставить его в Excel, вы можете попробовать использовать что-то вроде xclip. Обратите внимание, что вам, возможно, придется установить его. С помощью xclip я могу написать что-то вроде этого.

echo -e "xx\t\tyy" | xclip -selection c

Теперь он у меня в буфере обмена, я могу вставить его в Excel. Если эхо не работает, вы можете попробовать printf.

Если вы не хотите вводить все это каждый раз, вы можете вместо этого создать псевдоним.

alias xclip="xclip -selection c"
echo -e "xx\t\tyy" | xclip

И если ничего другого, вы всегда можете перенаправить вывод, который хотите, в файл, просто открыть его в текстовом редакторе и скопировать то, что вам нужно, поскольку вкладки должны оставаться вкладками в файле.

echo -e "xx\t\tyy" > tmpfile.txt
2
27.01.2020, 20:33

Теги

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