2010-02-01から1ヶ月間の記事一覧

テキストファイルを一定のサイズに分割する

#!/bin/sh #splitter.sh -N [filename] N 分割する個数(1 < N < 個数) SPLIT=0 INFILE="" TMPDIR="/tmp" TMPFILE="splitter.sh" CAT="/bin/cat" TOUCH="/bin/touch" WC="/usr/bin/wc" RM="/bin/rm" #オプションの処理 if [ 0 -lt $# ]; then OPTTMP1="$1" OP…

小文字から大文字へ変換する

#!/bin/sh #lower.sh [filename] INFILE="-" #小文字を大文字に変換する関数 function tr_lower(){ local LLINE="$1" local LTMP1="" local LTMP2="" local LTMP3="" local LNLIN="" LTMP3="$LLINE" LTMP2="${LTMP3#?}" LTMP3="$LLINE" LTMP1="${LTMP3%${LTM…

小文字から大文字に変換する

#!/bin/sh #upper.sh [-t] [filename] -t 行頭のみ大文字に変換 INFILE="-" OPTIONS="t" TOP="FALSE" FLAG="TRUE" #小文字を大文字に変換する関数 function tr_upper(){ local LLINE="$1" local LTMP1="" local LTMP2="" local LTMP3="" local LNLIN="" LTMP…

拡張子がtxtのファイルから指定文字列を置換する

#!/bin/sh #changeText.sh [-d Directory] SrcString DistString OPTIONS="d:" FINDDIR="." TMPDIR="/tmp/" TMPFILE="changeText.tmp" DATE="/bin/date" FIND="/usr/bin/find" GREP="/usr/bin/grep" WC="/usr/bin/wc -l" CAT="/bin/cat" RM="/bin/rm -f" CP=…

拡張子がtxtのファイルから指定文字列を含むファイルを検索

#!/bin/sh #findText.sh [-d Directory] Searstring OPTIONS="d:" FINDDIR="." TMPDIR="/tmp/" TMPFILE="findText.tmp" DATE="/bin/date" FIND="/usr/bin/find" GREP="/usr/bin/grep" WC="/usr/bin/wc -l" CAT="/bin/cat" RM="/bin/rm -f" #オプションの処理…

スペースをタブに置換する

#!/bin/sh #sp2tab.sh [-s N] [filename...] Nタブストップの基準値(1以上で省略時は8) TABSTOP=8 MINTABSTOP=1 INFILE="-" OPTIONS="t:" #スペースをタブに変換する関数 function replace_sp(){ local LLINE="$1" local LTMP1="" local LTMP2="" local LTMP…

タブをスペースに置換する

#!/bin/sh #tab2sp.sh [-s N] [filename...] N タブを変換するスペースの文字数 TABSTOP=8 MINTABSTOP=1 INFILE="-" OPTIONS="s:" LSPACES={} #タブをスペースに変換する関数 function replace_tab(){ local LLINE="$1" local LTMP1="" local LTMP2="" local…

所有者のいないファイルを探す

#!/bin/sh #nouser.sh [ディレクトリ] dir=$1 [ -z "$1" ] && dir="/" nouser=`find $dir -nouser` nogroup=`find $dir -nogroup` if [ -n "$nouser" -o -n "$nogroup" ]; then cat <

コマンド実行時にバックアップを取る

#!/bin/sh #backup.sh コマンド(引数を含む) allarg=$* daytime=`date +%y%m%d_%H%M%S` shift #バックアップ処理 while [ -n "$1" ]; do if [ -f $1 ]; then cp -i $1 $1.~$daytime fi shift done #コマンドを実行 $allarg #allargの値を$1,$2...に戻す set …

一定量に達したファイルをgzipで圧縮する

#!/bin/sh #autogz.sh ファイルまたはディレクトリ名 [ファイルまたはディレクトリ名] limit="10000k" [ -z "$1" ] && exit 1 for name in `find $* -size +$limit` ; do echo "$name" gzip $name done $ ./autogz.sh a a $ ls a.gz

ファイルのスナップショットを作成する

#!/bin/sh #snapshot.sh [-d 作成先ディレクトリ] [-e] ファイル名 [ファイル名...] #-e は過去のスナップショットを削除する dir="." daytime=`date +%y%m%d_%H%M%S` while [ -n "$1" ]; do case $1 in -d) dir=$2 shift 2 ;; -e) erase=1 shift ;; *) base…

パスワードを生成する

#!/bin/sh #mkpasswd.sh [文字数] len=$1 [ -z $len ] && len="8" char='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#%&()-=^~\@<>?/+*;:_' i=1 while [ $i -le $len ]; do #1以上charの文字数以下の乱数を得る dm=$(( ( $RANDOM % ${…

ファイルを分割・統合する

#!/bin/sh #splitut.sh -s 分割するファイル名 [出力ディレクトリ] #splitut.sh -c 統合するファイル名 [出力ディレクトリ] byte=10k [ -z "$2" ] && exit 1 filename=`echo $2 | sed 's/.*\///'` [ -n "$3" ] && filename="$3/$filename" case $1 in -s) if…

指定したディレクトリから特定の文字列を含むファイルを検索する

#!/bin/sh #search.sh [-l] keyword dirname lflug=0 if [ "$1" = "-l" ]; then lflug=1 shift fi dir=$2 [ -z "$dir" ] && dir="." [ -z "$1" ] && exit 1 for filename in `find $dir`; do if ! expr "$filename" : '/dev' > /dev/null && \ ! expr "$file…

ゴミ箱を実現する

#!/bin/sh #trash.sh [-f] filename ファイルをゴミ箱に移動 #trash.sh -e ゴミ箱を空にする boxdir=~/trashbox case $1 in -e) echo -n "Do you empty a trash box? [y/n]: " read answer [ -z "$answer" ] && answer="n" if [ "$answer" = "y" -o "$answer…

ファイルの大文字を小文字にする

#!/bin/sh #rename.sh [-f] dirname arg="-i" if [ "$1" = "-f" ]; then arg="-f" shift fi dir=$1 [ -d $dir ] || exit 1 dir=`echo "$dir" | sed 's/\/$//'` for filename in `ls $dir`; do #ファイル名に大文字を含むか判定 if expr "$filename" : '.*[A-…