Это можно легко сделать с помощью perl one -лайнера, например:
perl -i -pe 's/>/$ARGV$_/g' nexus*
Обратите внимание, что -i
изменяет файл на месте -, поэтому, если вы хотите только протестировать команду, сначала запустите ее без флага -i
.
Вы получаете сообщение об ошибке, потому что ваша (не-корневая )оболочка пыталась расширить глобус /var/lib/docker/*
и не смогла (, так как /var/lib/docker не читается вашим пользователем ). Затем ваша оболочка оставила глобус нетронутым, оставив буквальную звездочку для sudo
, на что du
жалуется:
du: cannot access '/var/lib/docker/*': No such file or directory
... потому что в /var/lib/docker/ нет файла или каталога с именем *
.
Команда du
выполняется пользователем root, но расширение глобуса выполняется ранее для вашего пользователя, и поскольку оно не может быть расширено (из-за разрешений каталога ), du
использует литерал *
как часть пути.
Если вы хотите увидеть размер папок внутри /var/lib/docker
, вы можете вызвать оболочку с помощью sudo
и защитить расширение глобуса(*
)одинарными кавычками:
sudo bash -c 'du -sh /var/lib/docker/*' | sort -h
(Я использую удобочитаемый формат(-h
в формате-sh
)и сортирую результат на основе возвращенных размеров, но вы можете изменить его)
Таким образом, расширение будет выполняться от имени пользователя root (, а не от вашего пользователя ).