I am trying to find files that have a newline in the filename. But I can't figure out what pattern to use.The following works, but is not very useful if I want to use it in indented code.find . -name '**'I tried these two and they only succeeded in finding filenames that contained the letter n:find . -name '*\n*'find . -name *\n*Then I found how to write backslash escape sequences and tried this:find . -name *$'\n'*But that doesn't find anything. How should I write the pattern?
How to find files that contain newline in filename?
shell;find;patterns
In shell scripting, everything is a string. You do need to quote the * to prevent filename expansion, but you don't want to put the backslash escape sequence inside double quotes.You could just concatenate the strings by placing them right after each other.find . -name '*'$'\n''*'But for better readability, you can use ANSI-C Quoting for the whole string.find . -name $'*\n*'