¿Cómo encontrar archivos que contienen nueva línea en el nombre del archivo?

10

Estoy tratando de encontrar archivos que tengan una nueva línea en el nombre del archivo. Pero no puedo entender qué patrón usar.

Lo siguiente funciona, pero no es muy útil si quiero usarlo en código sangrado.

find . -name '*
*'

Probé estos dos y solo lograron encontrar nombres de archivo que contenían la letra n :

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

Luego descubrí cómo escribir secuencias de escape de barra invertida e intenté esto:

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

Pero eso no encuentra nada. ¿Cómo debo escribir el patrón?

toxalot
fuente

Respuestas:

13

En las secuencias de comandos de shell, todo es una cadena. Usted no tiene que citar el *de prevenir la expansión de nombre de archivo , pero no quiere poner la secuencia de barra invertida entre comillas dobles.

Podrías concatenar las cadenas colocándolas una tras otra.

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

Pero para una mejor legibilidad, puede usar el ANSI-C Quoting para toda la cadena.

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