/ home - это базовый каталог для личных каталогов пользователей. В Windowss XP / home сопоставим с% HOMEDRIVE%. Полный путь, обычно / home / $ Loginname, сопоставим с% HOMEPATH%.
/ root - это домашний каталог основной учетной записи суперпользователя. Он находится на /, чтобы сделать его доступным во время ранней загрузки, где / home может быть недоступен (общий сетевой ресурс или собственная точка монтирования).
Я не буду повторять то, что можно прочитать в других ответах о / usr / local ...
В самом простом случае вы можете просто напечатать первое поле с достаточно большой шириной поля, например.
awk -F@ 'BEGIN{OFS=FS} {$1 = sprintf("%12s", $1)} 1' file
123@example.com
456789@example.net
01234@something-else.com
Насколько я знаю, любой метод, который не предполагает определенной максимальной ширины поля, потребует либо хранения файла в памяти, либо выполнения двух проходов.
column
с--table-right
Вот ввод без форматирования:
$ echo -ne '123@example.com\n456789@example.net\n01234@something-else.com\n'
123@example.com
456789@example.net
01234@something-else.com
Вот первая попытка, которая не совсем делает то, что мы хотим:
$ echo -ne '123@example.com\n456789@example.net\n01234@something-else.com\n' |
column --separator @ --table --output-separator @
123 @example.com
456789@example.net
01234 @something-else.com
Вот еще одна попытка. Но на этот раз с добавлена опция --table-right 1
. Это право -выравнивает столбец 1 (столбцы начинаются с 1 )и делает то, что мы хотели:
$ echo -ne '123@example.com\n456789@example.net\n01234@something-else.com\n' |
column --separator @ --table --output-separator @ --table-right 1
123@example.com
456789@example.net
01234@something-else.com
Или, если вы предпочитаете короткие варианты:
echo -ne '123@example.com\n456789@example.net\n01234@something-else.com\n' |
column -s@ -t -o@ -R1
123@example.com
456789@example.net
01234@something-else.com