После удаления можно изменить пароль. Вам нужно просто загрузиться в режиме восстановления. Здесь вы найдете хороший учебник: http://www.psychocats.net/ubuntu/resetpassword
Короче, что вы найдете по ссылке выше:
у вас есть для перезагрузки в режиме восстановления. (чтобы меню загрузки было показано, вы должны удерживать клавишу Shift во время загрузки). В загрузочном меню выберите вариант «Drop to root shell prompt» на консоли один за другимls /home
passwd username
passwd susan
exit
, затем перезагрузите обычный Вы можете использовать grep и только grep:
grep -oP "(?<=Path=).*" file
Объяснение:
Из man grep:
-o, --only-matching
Print only the matched (non-empty) parts of a matching line,
with each such part on a separate output line.
-P, --perl-regexp
Interpret PATTERN as a Perl compatible regular expression (PCRE)
Lookbehind (?<=Path=) утверждает, что в текущей позиции в строке предшествует символ Path=. Если утверждение выполнено успешно, двигатель соответствует шаблону разрешения.
Для синтаксиса регулярных выражений Perl 5 прочитайте lookbehind .
Решение awk - это то, что я хотел бы использовать, но немного меньший процесс для запуска - sed, и он может давать те же результаты, но заменяя PATH = часть строки на "", т. е. [ ! d0]
sed -n 's/^Path=//p' file
-n переопределяет поведение sed по умолчанию «print all lines» (поэтому -n = нет печати), и для печати строки мы добавляем символ p после подстанция. Будут напечатаны только строки, в которых происходит замещение.
Это дает вам поведение, о котором вы просили, из grep ing для строки, но удаляет часть Path= строки.
Если, по словам Дэвида Фёрстера , у вас есть большой файл и вы хотите прекратить обработку, как только вы согласовали и напечатали первое совпадение с «Path =», вы можете сказать sed выйти с командой q. Обратите внимание, что вам нужно сделать его командой-группой, окружив оба в { ..} и разделив каждую команду на ;. Таким образом, расширенная команда:
sed -n 's/^Path=//{p;q;}` file
IHTH
grep greped строка текста и отображает ее. head отображает первые n строк текста, а не символы.
Вы ищете sed или awk:
awk '{print $2}' FS='='
Это устанавливает = как разделитель полей и печатает второе поле.
С GNU grep:
$ echo Path=fy2tbaj8.default-1404984419419 | grep -oP '(Path=)\K.*'
fy2tbaj8.default-1404984419419
\K сохраняет материал слева от \ K, не включайте его в $&.
Конечно, решение состоит в использовании grep -Po.
Давайте добавим некоторые решения для полноты:
с cut, установив разделитель =:cut -d'=' -f2 file
Это может быть немного рискованно, но вы также можете указать файл, так что $Path будет содержать значение. source file
echo "$Path"
$ cat a
this=aaabbccc
that=dddeee
$ source a
$ echo "$this"
aaabbccc
$ echo "$that"
dddeee
В соответствии с комментариями см., как source только часть файла:
$ cat a
Path=22
Path=33
$ source a
$ echo $Path
33
$ source <(head -1 a)
$ echo $Path
22