Помимо проблем с разрешениями и совместимости с POSIX, утилиты проверки файловой системы NTFS не могут устранить все проблемы, которые может быть Windows 'chkdsk.exe. Это не проблема при двойной загрузке с Windows (если у вас нет отдельного раздела /boot, и в этом случае все будет не загружаться). Проще говоря, драйверы NTFS, доступные для Linux, не являются полнофункциональными.
Здесь есть пара странных вещей. Во-первых, поскольку я только что научился отвечать на ваш вопрос (спасибо!), [F2] имеет классный трюк:
/foo/s//bar/
Это означает, что «если эта строка соответствует foo, замените все, что было согласовано foo с bar. Я действительно не понимаю его смысла, если честно, вы могли бы сделать то же самое с простым s/foo/bar/, но там вы идете.
As для регулярного выражения:
^: соответствует началу строки. [^:]*: когда ^ находится внутри квадратных скобок, это отрицательный набор символов. Таким образом, в то время как [abc] означает a или b или c, [^abc] означает что-либо, кроме a, b или c. Таким образом, [^:]* будет соответствовать 0 или более не :. [eE]xception: это соответствует exception или Exception. :.*: соответствует :, а затем все остальное до конца строки. Наконец, первая часть находится в скошенных скобках (\( \)), что означает, что все, что было сопоставлено []Следующий бит - это оператор подстановки, здесь s//\1/p. Это означает замену того, что было сопоставлено раньше (inclu за исключением незахваченной части, так что вся линия) с тем, что было захвачено (\1). В результате будет напечатано только то, что было на линии до и включая слово expression (или Expression). И, поскольку -n подавляет вывод, p в конце означает «распечатать эту строку, если замена была успешной.
Наконец, uniq -c предоставит вам количество строк, соответствующих шаблон, найденный в вашем файле. Обратите внимание, что это не число раз, когда в файле происходит слово exception. Если в одной строке есть несколько exception:, это будет считаться единым.
Здесь есть пара странных вещей. Во-первых, поскольку я только что научился отвечать на ваш вопрос (спасибо!), [F2] имеет классный трюк:
/foo/s//bar/
Это означает, что «если эта строка соответствует foo, замените все, что было согласовано foo с bar. Я действительно не понимаю его смысла, если честно, вы могли бы сделать то же самое с простым s/foo/bar/, но там вы идете.
As для регулярного выражения:
^: соответствует началу строки. [^:]*: когда ^ находится внутри квадратных скобок, это отрицательный набор символов. Таким образом, в то время как [abc] означает a или b или c, [^abc] означает что-либо, кроме a, b или c. Таким образом, [^:]* будет соответствовать 0 или более не :. [eE]xception: это соответствует exception или Exception. :.*: соответствует :, а затем все остальное до конца строки. Наконец, первая часть находится в скошенных скобках (\( \)), что означает, что все, что было сопоставлено []Следующий бит - это оператор подстановки, здесь s//\1/p. Это означает замену того, что было сопоставлено раньше (inclu за исключением незахваченной части, так что вся линия) с тем, что было захвачено (\1). В результате будет напечатано только то, что было на линии до и включая слово expression (или Expression). И, поскольку -n подавляет вывод, p в конце означает «распечатать эту строку, если замена была успешной.
Наконец, uniq -c предоставит вам количество строк, соответствующих шаблон, найденный в вашем файле. Обратите внимание, что это не число раз, когда в файле происходит слово exception. Если в одной строке есть несколько exception:, это будет считаться единым.
Здесь есть пара странных вещей. Во-первых, поскольку я только что научился отвечать на ваш вопрос (спасибо!), [F2] имеет классный трюк:
/foo/s//bar/
Это означает, что «если эта строка соответствует foo, замените все, что было согласовано foo с bar. Я действительно не понимаю его смысла, если честно, вы могли бы сделать то же самое с простым s/foo/bar/, но там вы идете.
As для регулярного выражения:
^: соответствует началу строки. [^:]*: когда ^ находится внутри квадратных скобок, это отрицательный набор символов. Таким образом, в то время как [abc] означает a или b или c, [^abc] означает что-либо, кроме a, b или c. Таким образом, [^:]* будет соответствовать 0 или более не :. [eE]xception: это соответствует exception или Exception. :.*: соответствует :, а затем все остальное до конца строки. Наконец, первая часть находится в скошенных скобках (\( \)), что означает, что все, что было сопоставлено []Следующий бит - это оператор подстановки, здесь s//\1/p. Это означает замену того, что было сопоставлено раньше (inclu за исключением незахваченной части, так что вся линия) с тем, что было захвачено (\1). В результате будет напечатано только то, что было на линии до и включая слово expression (или Expression). И, поскольку -n подавляет вывод, p в конце означает «распечатать эту строку, если замена была успешной.
Наконец, uniq -c предоставит вам количество строк, соответствующих шаблон, найденный в вашем файле. Обратите внимание, что это не число раз, когда в файле происходит слово exception. Если в одной строке есть несколько exception:, это будет считаться единым.