如何查找文件名中包含换行符的文件?


10

我正在尝试查找文件名中包含换行符的文件。但是我不知道该使用哪种模式。

以下工作有效,但如果要在缩进代码中使用它,则不是很有用。

find . -name '*
*'

我尝试了这两个,但他们只成功找到了包含字母n的文件名:

find . -name '*\n*'
find . -name "*\n*"

然后,我发现了如何编写反斜杠转义序列并尝试了此操作:

find . -name "*$'\n'*"

但这什么也找不到。我应该如何写模式?

Answers:


13

在shell脚本中,所有内容都是字符串。您确实需要用引号引起*来以防止文件名扩展,但是您不想将反斜杠转义序列放在双引号中。

您可以通过将字符串紧挨着放置来串联字符串。

find . -name '*'$'\n''*'

但是为了提高可读性,可以对整个字符串使用ANSI-C引用

find . -name $'*\n*'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.