Почему sed s/// (пустой шаблон и замена) удаляет определенную строку?

Can I be sure that if I reinstall my OS and encrypt my home directory I can be safe even if someone detachs my hard-drive and connects it to his/her PC?

Mayormente, sí (Supongo que sus atacantes no serían lo suficientemente sofisticados ). Pero dado que está reinstalando el sistema operativo, debe cifrar todo el disco. LUKS hace que esto sea fácil de hacer, simplemente seleccione la opción adecuada durante la instalación.

Tenga en cuenta que su administrador de red aún podrá ver los sitios que visita, los correos electrónicos que envía, etc. Le recomiendo que evite dejar cualquier contraseña y contenido que no esté relacionado con el -trabajo en su computadora.

3
20.06.2019, 15:23
1 ответ

Когда команда редактирования sвызывается с пустым регулярным выражением, она повторно использует последнее использовавшееся выражение. В этом случае он повторно использует Line3из сопоставления с ним ранее. Это относится к//(пустым регулярным выражениям )как в команде s, так и в диапазонах адресов.

Ваша команда также может быть записана без этой функции как

sed -i -e '/Line3/r junk.txt' -e 's/Line3//' lines.txt

Текст Line3удален, потому что он ничем не заменен.

Иногда это можно было увидеть в таких конструкциях, как

/expression/ {
    s//replacement/
    # other code here
}

Спецификация POSIX дляsedформулирует это как

If an RE is empty (that is, no pattern is specified) sed shall behave as if the last RE used in the last command applied (either as an address or as part of a substitute command) was specified.

5
27.01.2020, 21:17

Теги

Похожие вопросы