tox*_*lot 11 shell find patterns
我正在尝试查找文件名中有换行符的文件。但我不知道使用什么模式。
以下有效,但如果我想在缩进代码中使用它,则不是很有用。
find . -name '*
*'
Run Code Online (Sandbox Code Playgroud)
我尝试了这两个,他们只成功找到了包含字母n 的文件名:
find . -name '*\n*'
find . -name "*\n*"
Run Code Online (Sandbox Code Playgroud)
然后我找到了如何编写反斜杠转义序列并尝试了这个:
find . -name "*$'\n'*"
Run Code Online (Sandbox Code Playgroud)
但这并没有找到任何东西。我应该如何写模式?
tox*_*lot 16
在 shell 脚本中,一切都是字符串。您确实需要引用*以防止文件名扩展,但您不想将反斜杠转义序列放在双引号内。
您可以通过将它们紧挨着放置来连接字符串。
find . -name '*'$'\n''*'
Run Code Online (Sandbox Code Playgroud)
但是为了更好的可读性,您可以对整个字符串使用ANSI-C 引用。
find . -name $'*\n*'
Run Code Online (Sandbox Code Playgroud)