Не совсем. Поскольку вы использовали якорь $, вы ищете строки, которые заканчиваются сразу после строки ac, поэтому сопоставляются только строки, содержащие ровно один ac и больше символов.
Чтобы разрешить любые символы между этими буквами, используйте регулярное выражение для любого количества любых символов: .* (или если вы хотите разрешить только один символ, как в abc в примере, используйте . без $ anchor как *.)
Кстати, вы можете просто оставить параметр -E для этого регулярного выражения, так как он не содержит никакого синтаксиса, который бы отличался в этих двух вариантах.
Итак, результат:
grep '^a.*c$' newfile
Сначала откройте терминал, станьте root
sudo -i
Затем используйте следующие команды:
измените «старый» на старое имя пользователя, а «новый» на новый желаемое имя.
usermod -d /home/new -m old
sed -i -e 's_old_new_g' /etc/passwd
sed -i -e 's_old_new_g' /etc/group
sed -i -e 's_old_new_g' /etc/shadow
Первая команда перемещает ваш домашний каталог, см. man usermod
-d, --home HOME_DIR Новый каталог входа пользователя. Если задана опция -m, содержимое текущего домашнего каталога будет перемещено в новый домашний каталог, который создается, если он еще не существует.Команда sed изменяет имя в /etc/{passwd,group,shadow}
Система в противном случае идентифицирует пользователей по номеру, а не по имени, поэтому ваше владение файлами и разрешения будут в порядке
[d9 ] Чтобы увидеть свой цифровой идентификатор, запустите командуid