ファイル名に改行を含むファイルを見つける方法は?


10

ファイル名に改行が含まれているファイルを見つけようとしています。しかし、どのパターンを使用するべきかわかりません。

以下は機能しますが、インデントされたコードで使用する場合はあまり役に立ちません。

find . -name '*
*'

私はこれら2つを試したところ、nという文字を含むファイル名を見つけることに成功しました。

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

それから私はバックスラッシュエスケープシーケンスを書く方法を見つけてこれを試しました:

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

しかし、それでは何も見つかりません。どのようにパターンを書けばよいですか?

回答:


13

シェルスクリプトでは、すべてが文字列です。あなたはやる引用する必要性*を防止するためにファイル名展開をしていますが、二重引用符内のバックスラッシュエスケープシーケンスを配置する必要はありません。

ストリングを互いに直後に配置することにより、ストリングを連結することができます。

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

ただし、読みやすくするために、文字列全体にANSI-C引用を使用できます。

find . -name $'*\n*'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.