Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LinuxShell:为什么零结尾行不能按预期工作?_Linux_Shell_Command Line - Fatal编程技术网

LinuxShell:为什么零结尾行不能按预期工作?

LinuxShell:为什么零结尾行不能按预期工作?,linux,shell,command-line,Linux,Shell,Command Line,我读过关于grep的“人”,当我尝试“经典”的工作方式时,而当我尝试使用零结尾行时,它不起作用: /cygdrive/g/eb # find . -type f | grep -E 'pdf$' ./Je_vais_mieux.pdf ./La_delicatesse.pdf ./Femme.pdf ./Souvenirs.pdf /cygdrive/g/eb # find . -type f -print0 | grep -ZE 'pdf$' Binary file (standard inp

我读过关于grep的“人”,当我尝试“经典”的工作方式时,而当我尝试使用零结尾行时,它不起作用:

/cygdrive/g/eb # find . -type f | grep -E 'pdf$'
./Je_vais_mieux.pdf
./La_delicatesse.pdf
./Femme.pdf
./Souvenirs.pdf
/cygdrive/g/eb # find . -type f -print0 | grep -ZE 'pdf$'
Binary file (standard input) matches
/cygdrive/g/eb # find . -type f -print0 | grep -zE 'pdf$'
Binary file (standard input) matches
/cygdrive/g/eb # find . -type f -print0 | grep -ZzE 'pdf$'
Binary file (standard input) matches

我遗漏了什么?

您遗漏了
grep-a
,告诉
grep
,它的输入实际上是文本的:

find . -type f -print0 | grep -E -Zz -a 'pdf$'
也就是说,这是一件愚蠢的事情,因为
find
可以在没有grep帮助的情况下按后缀过滤自己的输出:

find . -name '*pdf' -type f -print0