対象のディレクトリの拡張子一覧を取得する方法と便利コマンド少々
March 27, 2014
bashの奥は深い。
- ext-list.sh
#!/bin/bash
dir=`pwd`
list=`find ${dir} -type f -perm 755`
# not = !
# list=`find ${dir} -type f ! -perm 755`
for file in $list
do
filename=`basename $file`
ext=${filename##*.}
ext_list=("${ext_list[@]}" ${ext})
done
echo ${ext_list[@]} | tr ' ' '\n' | sort | uniq -c | sort -n
などというスクリプトを作成しておいて
確認したいディレクトリでそのスクリプトを叩けば取得できます。
/usr/local/Cellarで実行したら
['-']% sh /tmp/ext-list.sh | tail -n10
5 1
5 6
6 0
7 py
10 test
11 sh
16 pl
27 result
62 so
116 la
['-']%
こんな感じの結果になりました。
便利コマンド
- basename
['-']% basename /usr/local/bin/zsh
zsh
['-']%
- dirname
['-']% dirname /usr/local/bin/zsh
/usr/local/bin
['-']%
- シャープ
['-']% hoge=/usr/local/Cellar/zsh/5.0.2/lib/zsh/zutil.so
['-']%
['-']% echo ${hoge##*.}
so
['-']% echo ${hoge#*.}
0.2/lib/zsh/zutil.so
['-']%
- パーセント
['-']% hoge=/usr/local/Cellar/zsh/5.0.2/lib/zsh/zutil.so
['-']%
['-']% echo ${hoge%%.*}
/usr/local/Cellar/zsh/5
['-']%
['-']% echo ${hoge%.*}
/usr/local/Cellar/zsh/5.0.2/lib/zsh/zutil
['-']%