Я уверен, что большинство из нас знает, что когда мы хотим, чтобы какое-то регулярное выражение совпадало со строкой в начале строки, мы должны использовать «^» ...
Но я пытаюсь понять, что на самом деле означает "пустая строка в начале строки"
Я знаю, что эхо "Hello World" | grep ^ H это соответствует
Поэтому, пожалуйста, посмотрите вывод этих команд:
[sergio@localhost ~]$ dd if=/dev/zero of=/tmp/texto count=1 bs=1 2>/dev/null
[sergio@localhost ~]$ od -ta /tmp/texto
0000000 nul
0000001
Пока что все как положено, так что
[sergio@localhost ~]$ echo "Hello" >> /tmp/texto
[sergio@localhost ~]$ grep -a "^Hello" /tmp/texto
Ну, первое, что я должен признаться, не ожидал, до того, как у Hello есть нулевой символ, так почему же он не совпадает?
Хорошо, давайте использовать grep в стиле Perl:
[sergio@localhost ~]$ grep -a -P "\x00Hello" /tmp/texto
Hello
Хорошо, это соответствует
Но что я не понимаю (возможно, у меня есть неправильное представление), почему grep -a "^ Hello" не совпадает ...
Не могли бы вы помочь мне?
заранее спасибо!