以下の内容はhttps://takuya-1st.hatenablog.jp/entry/2017/06/01/163000より取得しました。


bashのシェルスクリプトで拡張子を取得して利用するときのまとめ

特定の拡張子に○○する的なことはよくある

シェルスクリプトを書いていると拡張子で判別したいことはよくある。

bashで拡張子を取得するには

bashのブレース展開が一番ラクです。

path=/etc/apache2/httpd.conf
extension=${path##*.}  #=> conf

特定のディレクトリの中で拡張子を取得するには

xargs と組み合わせる

find  | xargs -I@  bash -c 'path=@; echo ${path##*.}'

そもそも拡張子の取得が必要ですか?

そのシェルスクリプトで拡張子をもとに検索をしたいなら、拡張子を取る必要はないかもしれないですよ。

指定した拡張子を検索

grep  . -R --include=*.php

指定した拡張子のファイルを列挙する。

find -type f -name '*.php'

ファイル名がマッチするかどうかなら、拡張子を取らなくても正規表現やglob のマッチングで倒せる

正規表現でマッチング.

[[ $path =~ conf$ ]]; 

glob マッチングで conf にマッチさせる。

[[ $path = *conf ]]; 

拡張子がとれたら?

uniq -c や sort で並べ替えると便利でしょうね。

他には?

awksed と組み合わせるのもいいですね。

シェル・スクリプトを使うと組合せは無限大なのがいいですよね。

関連資料




以上の内容はhttps://takuya-1st.hatenablog.jp/entry/2017/06/01/163000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14