私はfind
ファイルのリストを取得し、パスの一致にgrepを使用しました。
$ find pc* | grep -i arthur
pc6/arthurv/untitled-2.py
pc6/arthurv/untitled-3.py
pc6/arthur.py
pc9/Arthur 4C
pc9/Arthur 4C/untitled-1.py
pc9/Arthur 4C/untitled-2.py
私はこれを行い、ls -F
各ディレクトリに1つずつ追加したいと思います。/
または、一致するすべての大文字と小文字を区別せずに表示するディレクトリを見つける方法はarthur
?
ベストアンサー1
find
GNUで条件付き処理を実装するには、式に論理和を使用できますfind
。
find pc* -type d -printf "%p/\n" -o -print
「pc *」に一致するファイルとディレクトリで始まるパスですべてのエントリを見つけてその名前を印刷し、ディレクトリの場合は「/」と表示されます。
仕組みは次のとおりです。
pc*
開始パスを指定します。-type d
一致ディレクトリ-printf "%p/\n"
現在処理されているファイルのパスを印刷し、その後に「/」と改行文字が続くので、一致する-type d
場合にのみ実行されます-type d
(暗黙的な接続詞があります)。-o
論理和の紹介:前の表現が一致しない場合は、その後の表現が評価されます(-type d -printf "%p/\n"
接続が論理和より優先順位が高いため、前の表現がここにあります)。-print
現在処理中のファイルのパスを出力します。
追加のfind
式を使用して、大文字と小文字を区別しない「arthur」に一致するすべてのディレクトリを表示できます。
find . -type d -iname "*arthur*"