指定した種類の拡張子が全て揃っているファイル名だけを取得する

ちょっとした処理で、拡張子より前で同名の名称が使われていて、かつ指定した拡張子が全て揃っているファイルのみを抽出する必要があったので、備忘で残しておく。
awkだけで処理させればもうちょっと短く書けそうな気もするが、ひとまず以下のように記述すれば対応可能だ。

ls -1 *.{txt,jpg,csv} | awk -F. '{a[$1]++}END{for(k in a)if(a[k]>2){print k}}' | xargs -I@ sh -c 'ls -la @*'
Sponsored Links

[root@BS-PUB-CENT7-01 test_dir]# ls -la
合計 12
drwxr-xr-x.  2 root root 4096  9月 28 09:53 .
dr-xr-x---. 26 root root 4096  9月 28 09:51 ..
-rw-r--r--.  1 root root    0  9月 28 09:53 test1.csv
-rw-r--r--.  1 root root    0  9月 28 09:53 test1.txt
-rw-r--r--.  1 root root    0  9月 28 09:53 test2.csv
-rw-r--r--.  1 root root    0  9月 28 09:53 test2.jpg
-rw-r--r--.  1 root root    0  9月 28 09:53 test2.txt
-rw-r--r--.  1 root root    0  9月 28 09:53 test3.jpg
-rw-r--r--.  1 root root    0  9月 28 09:53 test3.txt
-rw-r--r--.  1 root root    0  9月 28 09:53 test4.csv
-rw-r--r--.  1 root root    0  9月 28 09:53 test4.jpg
-rw-r--r--.  1 root root    0  9月 28 09:53 test5.csv
-rw-r--r--.  1 root root    0  9月 28 09:53 test5.jpg
-rw-r--r--.  1 root root    0  9月 28 09:53 test5.txt
[root@BS-PUB-CENT7-01 test_dir]# ls -1 *.{txt,jpg,csv} | awk -F. '{a[$1]++}END{for(k in a)if(a[k]>2){print k}}' | xargs -I@ sh -c 'ls -la @*'
-rw-r--r--. 1 root root 0  9月 28 09:53 test2.csv
-rw-r--r--. 1 root root 0  9月 28 09:53 test2.jpg
-rw-r--r--. 1 root root 0  9月 28 09:53 test2.txt
-rw-r--r--. 1 root root 0  9月 28 09:53 test5.csv
-rw-r--r--. 1 root root 0  9月 28 09:53 test5.jpg
-rw-r--r--. 1 root root 0  9月 28 09:53 test5.txt

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*