53473


Linuxの find -name *png の出力が、大量にある場合  
同一ディレクトリのものを、一つにまとめディレクトリのみにまとめる  
こんなシェルスクリプトは可能でしょうか？


CC BY-SA 4.0
2019-03-16T06:29:44.453
53465
2019-03-16T11:24:29.680
15090
question
linux shellscript
find -name *png の結果をディレクトリにまとめる


自己解決

[code]

    find -name *png > file1
    cat file1 | sed 's:\(.*\)/.*:\1:' > file2
    uniq file2 file3
    
[/code]

で、出来ました。


CC BY-SA 4.0
2019-03-16T08:21:28.317
53469
2019-03-16T09:18:23.953
2019-03-16T09:18:23.953
15090
15090
53465
answer


ディレクトリ内の該当ファイルのファイル名の長さに左右されますが下記のようにすると良さそうです。

[code]

    find -name "*png" -execdir sh -c 'echo $PWD' _ {} \+
    
[/code]

それでも重複するようなら下記のようにパイプでつないで`uniq`すればより確実だと思います。

[code]

    find -name "*png" -execdir sh -c 'echo $PWD' _ {} \+ | uniq
    
[/code]


CC BY-SA 4.0
2019-03-16T11:24:29.680
53473
2019-03-16T11:24:29.680
25936
53465
answer