распечатайте вывод к 3 отдельным столбцам

Можно найти unicode символы на большом количестве сайтов, как этот: http://panmental.de/symbols/info.htm

Просто необходимо удостовериться, что термин поддерживает UTF-8.

27
24.12.2012, 11:56
5 ответов

Можно использовать команду оболочки 'столбец' для этого, проверить: column Страница справочника.

Объедините это с циклом, и Вы находитесь в бизнесе, например:

#!/bin/sh

MYPATH=/
TOTALFILE=$(ls $MYPATH/* | wc -l)
FILE=$(ls -1tcr $MYPATH/* | head -5 | rev | cut -d/ -f1 | rev)

declare -a FILES
declare -a FILETIME

OUTPUT="FILENAME CREATED TIME ERROR_HEADER\n\n------------------------------ ----------------------------- ----------------------------------- ------$

for i in $MYPATH/*;
do
    FILES[${#FILES[@]}]="$i"
    FILETIME[${#FILETIME[@]}]=$(stat --format=%y $i | head -5 | cut -d'.' -f1)
    TOPLINE=$(head -1 $i | grep -Po '".*?"' | head -5)

    OUTPUT="$OUTPUT\n${FILES[${#FILES[@]}-1]} ${FILETIME[${#FILETIME[@]}-1]} $TOPLINE\n"
done

echo -ne $OUTPUT | column -t
25
27.01.2020, 19:39
  • 1
    мне было нужно дальнейшее управление того, что вошло, какой столбец, таким образом, я разделил столбцы на '*' и использовал что-то как sed 's/^/ \* \*/g' для смещения вещей из первого столбца в треть. Работавший обработка для меня. –  LOAS 16.11.2016, 18:03

Я пошел бы с цикл

printf " %-20s | %-20s | %-20s\n " FILE\ CREATED\ TIME FILE\ NAME ERROR\ HEAD
for i in "$MYPATH"/*
do
    printf "%-20s | %-20s | %-20s\n " $FILENAME $FILE $TOPLINE
done
printf "Total Files: %s" $TOTALFILES 
2
27.01.2020, 19:39
  • 1
    я дал Вам как не решение. Теперь необходимо адаптировать код так, чтобы ФАЙЛ ИМЕНИ ФАЙЛА и ИЗВЕСТНЫЙ заботился в цикле вместо того, чтобы делать его перед циклом. –  BitsOfNix 23.12.2012, 19:22
  • 2
    Необходимо заключить все в кавычки расширения, или это легко повредится. –  Chris Down 23.12.2012, 22:17

Я рекомендовал бы использовать printf, например:

printf "%-30s | %-30s | %-30s" "$FILETIME" "$FILE" "$TOPLINE"

Где %-30s средства зарезервировать 30 символов для входного параметра строки типа. - обозначает выравнивание по левому краю.

29
27.01.2020, 19:39

Не уверен, что это то, чем вы занимаетесь, "вставка" в unix может расположить файлы в столбце, вам может понадобиться printf для переформатирования стандартного вывода. пример:

column

1
27.01.2020, 19:39

Ответ @qnimbus, вероятно, лучше всего подходит для систем Linux, но в Sun или IBM (, если вам не повезло, и вы не используете одну из них в 2019 году ), эта команда может быть недоступна. Вместо этого вы можете использовать командуpr, чтобы получить тот же эффект. Из примеров на связанной странице вы можете использовать следующее:

pr -3 word.lst | qprt

для печати файла word.lstв 3 столбца. Тем не менее, это только часть решения вашей проблемы, а в остальном я полагаюсь на ответ @qnimbus.

2
27.01.2020, 19:39

Теги

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