Skip to content

Instantly share code, notes, and snippets.

@hnishi
Last active March 11, 2016 02:40
Show Gist options
  • Save hnishi/f1dcf5876d32e9c6f23b to your computer and use it in GitHub Desktop.
Save hnishi/f1dcf5876d32e9c6f23b to your computer and use it in GitHub Desktop.
#!/bin/bash
comm=ls #コマンド
echo "ARGUMENTS:" $@ #"$@"には引数全部のリストみたいなのが入っている
echo "NUM OF ARGUMENTS:" $# #"$#"には引数の数が入っている
###引数がない場合に終了する処理
if [ 0 == $# ];then #もし引数の数が0なら終了
echo "No argument, exit"
exit 1
fi
echo "###(1)引数全てが当てはまるファイルのみ表示"
$comm > zzz.tmp #いったんlsの出力をファイルに書き出す
for i in $@ #全ての引数でループする
do
#echo $i
grep $i zzz.tmp > yyy.tmp #同じファイルに書き込めないので一時ファイルをもう一個使う
mv yyy.tmp zzz.tmp #grepの結果をzzz.tmpファイルに上書き
done
cat zzz.tmp #結果の標準出力
rm zzz.tmp #一時ファイルの削除
echo "###(2)引数のどれかが当てはまるファイルの表示"
for i in $@ #全ての引数でループする
do
#echo $i
$comm |grep $i >> zzz.tmp #引数の要素1個ずつgrepする
done
sort zzz.tmp | uniq #ソートされたファイルの重複する行を除去して表示するコマンドuniq
rm zzz.tmp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment