这个问题与可以在这里找到的 FTP 工具有关:ftp : //ftp.linux.org.uk/pub/linux/Networking/netkit
如果我运行类似ls
输出的命令如下:
227 Entering Passive Mode (192,0,2,1,104,31)
Run Code Online (Sandbox Code Playgroud)
中间的最后两个数字()
是什么意思?
我相信我们大多数人都知道,当我们希望某些正则表达式与行首的字符串匹配时,我们必须使用“^”...
但是,我试图理解“行首为空字符串”的真正含义
我知道 echo "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
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都如预期,所以:
[sergio@localhost ~]$ echo "Hello" >> /tmp/texto
[sergio@localhost ~]$ grep -a "^Hello" /tmp/texto
Run Code Online (Sandbox Code Playgroud)
好吧,我必须承认的第一件事没有预料到,在 Hello 之前有一个空字符,为什么它不匹配?
好的,让我们以 perl 风格使用 grep:
[sergio@localhost ~]$ grep -a -P "\x00Hello" /tmp/texto
Hello
Run Code Online (Sandbox Code Playgroud)
好的,它匹配
但是我不明白(也许我有一些误解)为什么 grep -a "^Hello" 不匹配......
你可以帮帮我吗?
提前致谢!