自分で作成したWebサイトでなく、他人が作成したWebサイトのデータを渡され、それを元に何とかしてくれ(見栄えよくしてくれ、改良してくれ)という要求が来る場合があります。どこに、どんなファイルがあるか確認するのも手間ですし、カラーや文字コードの統一などをしようと思うと、余計に手間がかかります。(最近は作成ソフトの機能が向上しているので、そんなにひどく苦労するということはないかもしれませんが)
そこで、特定のフォルダ内にあるHTMLファイルにある特定の文字列をリストアップしたり、ついでにアプリケーションで開くようになっていると便利です。
まず、特定のフォルダ内にあるHTMLファイルをリストアップするスクリプトです。以下のスクリプトを入力しlistup.shのように拡張子を.shにして保存します。
#!/bin/sh
for i in `find ~/Sites/ -type f | grep htm`
do
n=`grep "#FFFFFF" $i | wc -l`
if [ $n != 0 ]
then
echo $i
fi
done
次にターミナルを起動して以下のように入力します。
chmod 700 保存したファイル名
このようにパーミッションを設定します。実行するにはファイルを保存したディレクトリに移動します。
cd
と入力してファインダから保存したファイルがあるフォルダをターミナルにドラッグドロップします。その後でリターンキーを押すとディレクトリが移動します。
次にターミナルから(listup.shという名前の場合)
./listup.sh
と入力します。(絶対パスで/Users/dgcr/myScripts/listup.shのように直接パスを指定してもOKです) すると文字列#FFFFFF(大文字小文字無視)が含まれるページのパスが表示されます。
結果を保存したい場合には
./listup.sh > result.txt
のように > の後に保存するファイル名を指定します。ファイルを検索するフォルダを指定するには
for i in `find ~/Sites/ -type f | grep htm`
の~/Sites/の部分を変えてください。検索する文字列を変更するには
n=`grep "#FFFFFF" $i | wc -l`
の#FFFFFFの部分を検索したい文字列にしてください。
以下の載せるスクリプトも同様の方法で利用できます。変更箇所も同じです。
●検索されたファイルを開く(デフォルトアプリで開くので、いろいろなアプリで開かれます)
#!/bin/sh
for i in `find ~/Sites/ -type f | grep htm`
do
n=`grep "#FFFFFF" $i | wc -l`
#echo $n
if [ $n != 0 ]
then
open $i
fi
done
●検索されたファイルをGoLive CSで開く
#!/bin/sh
for i in `find ~/Sites/ -type f | grep "htm"`
do
n=`grep -i "#FFFFFF" $i | wc -l`
#echo $n
if [ $n != 0 ]
then
open -a /Applications/Adobe GoLive CS_JPN/Adobe GoLive CS.app $i
fi
done
開くアプリケーションを変えたい場合には
/Applications/Adobe GoLive CS_JPN/Adobe GoLive CS.app
の部分を開きたいアプリケーションのパスにしてください。半角空白が含まれる場合には のように先頭に円記号(英語フォントではバックスラッシュ)を付けてください。うまくいかない場合にはアプリケーション名を変えてしまっても構いません。