ファイルとディレクトリのリストからのディレクトリのフィルタリング

ファイルとディレクトリのリストからのディレクトリのフィルタリング

ファイルとディレクトリの絶対パス名を含むファイルがあります。

ファイルパスのみを含むリストが残るように、このリスト内のディレクトリを参照するすべてのパス名をフィルタリングしたいと思います。

誰でも優雅な解決策を考えることができますか?

ベストアンサー1

while IFS= read -r file; do
  [ -d "$file" ] || printf '%s\n' "$file"
done <input_file

タイプが不明なファイルが印刷されます。目次(またはディレクトリへのシンボリックリンク)。他のすべての種類のファイル(通常のファイル、シンボリックリンク(ディレクトリを除く)、ソケット、パイプ...)だけでなく、種類を確認できないファイル(ファイルが存在しないか、ユーザーが使用していないディレクトリにあるため)もあります。維持されます。には存在しません。)検索権限がありません。

あなたが意味するものに応じて、いくつかの変形ファイルとディレクトリ別目次Unixのさまざまな種類のファイルの1つです):

  • 文書存在する(シンボリックリンク確認後)タイプではありません。目次:

    [ -e "$file" ] && [ ! -d "$file" ] && printf '%s\n' "$file"
    
  • 文書存在するそして定期的なファイル(シンボリックリンクを確認した後):

    [ -f "$file" ] && printf '%s\n' "$file"
    
  • 文書存在するそして定期的なシンボリックリンクを確認する前のファイル(シンボリックリンクを除く):

    [ -f "$file" ] && [ ! -L "$file" ] && printf '%s\n' "$file"
    
  • など。

おすすめ記事