одно линейное решение на основеjtc
и xargs:
bash $ jtc -x'l[+0]l[-1]' -y'l' -y'l' -y'l' your.json | xargs -n3
.gitignore FILE 224
Jenkinsfile FILE 1396
README.md FILE 237
pom.xml FILE 2548
bash $
Примечание:в вашем файле json неправильный (ключ размера присутствует не в каждой записи ), для его исключения первый аргумент -x
построен таким образом (обрабатывать только те записи, где размер присутствует ).
В зависимости от конфигурации sudo, переменная окружения HOME
может указывать на ваш домашний каталог или указывать на домашний каталог целевого пользователя. Может иметь значение, запускаете ли вы sudo -s
илиsudo zsh
(снова, в зависимости от конфигурации sudo ).
Чтобы всегда иметь свой домашний каталог, вы можете использовать
sudo --preserve-env=HOME
, если позволяет конфигурация sudo, или
sudo env HOME="$HOME" zsh
что всегда возможно.
Вы можете сделать это псевдонимом или функцией, например.
alias sudo='sudo --preserve-env=HOME'
или
function sudo {
if [ $# -eq 0 ]; then
set env HOME="$HOME" zsh
fi
sudo "$@"
}
Имейте в виду, что некоторые приложения сохраняют файлы состояния в вашем домашнем каталоге, и вы можете получить некоторые файлы, принадлежащие root -, например .viminfo
и .zsh_history
. Если проблемы возникают только с несколькими программами, настройте их на использование разных файлов состояния. Например, у меня есть это в моем.vimrc
:
" Disable viminfo if running as root
if has("unix")
if system("id -u") == 0
set viminfo=
endif
endif
И (более сложная версия )этого в моем.zshrc
:
if [[ $UID -eq 0 ]]; then
HISTFILE="${HISTFILE%_history}_root_history"
fi