bash
# 100行ごと # 3桁数字を末尾に付加 $ split -l 100 -d -a 3 a.dat a.dat $ ls a.dat a.dat000 a.dat001 a.dat002
# *.datなファイルに絞る $ wc -l `find . -name '*.dat'`
read権限が無くても、ディレクトリ名は表示出来る。 しかし、read権限がなければcdやlsは出来ない。
# カレントディレクトリで10分以内に更新されたファイルを検索 $ find . -type f -mmin -10
次ページ f 前ページ b 次行 e 前行 y
# 「404」に対するgrep結果を標準出力する $ zgrep 404 access_log-20160722.gz
a=Kazu # ダブルクォーテーションは変数展開される name="My name is $a" echo $name # My name is Kazu name='My name is $a' echo $name # My name is $a
# 無限ループ while : do # pingやtopなどのコマンド ping localhost ret=$? # 終了ステータスによる死活監視 if [ $ret -ne 0 ]; then echo "status code: $ret" echo "pingを再実行する" fi done
# fでツリー表示になり分かりやすい ps -axf
# 1秒間隔 watch -n 1 'netstat -na | grep ":3000"'
d=`date | wc -l` # シェル変数の削除 unset d # 特のエラーは起きず、空行が出力される echo $d
line="#comment" # 正規表現を"で囲んではいけないため、\でエスケープさせる必要が有る if [[ $line =~ \#comment ]]; then echo $line fi
a=123 b=`if [[ $a ]]; then echo $a else echo "none" fi | cat` echo $b # 123
readonly PI=3.14
var=1 # [[ 条件式 ]]ならば、varが空または未定義ならば構文エラーにならない if [[ $var == 1 ]]; then echo "one" else echo "not not" fi
var=foo value=3 # $varが動的変数 eval `echo $var=`$value または printf -v $var "%d" $value これで echo $foo # 3
sh main.sh data.txt main.sh i=1 while read line # 変数lineに、data.txtの1行ずつが格納される do echo "$i: $line" i=`expr $i + 1` done <$1 # ここでdata.txtを指定(引数)
#foo.dat #1 2016 #2 2020 #3 2009 #4 2004 #5 2015 #6 2010 sort -k2 -r foo.dat # 2列目の降順で整列 結果 2 2020 1 2016 5 2015 6 2010 3 2009 4 2004
# foo.dat # # foo 2 # bar 3 # hoge 1 # piyo 5 awk '$1~/^hoge/' foo.dat # hoge 1
cat hoge.dat | grep -c "" または cat hoge.dat | wc -l
a="The man" b="is Yoshida" # $aと$bをダブルクォーテーションで囲む必要が有ることに注意 c=$(printf "%s %s." "$a" "$b") echo $c # The man is Yoshida.
branch='master' today=`date +%Y%m%d_%H%M%S` echo ${branch}_${today} # master_20160615_035307
#!/usr/bin/expect # 環境変数から参照可能な変数にセット set TARGET_FILE $env(TARGET_FILE) # 最初に投入したいコマンド spawn rm -i $TARGET_FILE # コマンド投入の結果、表示される標準出力に、マッチさせる文字列を定義 expect "rm: " # マッチした場…
オプションgによりファイル全体に対する置換 sed s/2015/2016/g index.php /をエスケープしない方法(但し、ピリオドはエスケープさせる) sed s|/hoge/index\.html|/piyo/index\.html|g index.php
mkdir -p dir/sub_dir1/sub_dir2
# public_html配下の容量確認 find public_html -maxdepth 1 -type d | awk '{res = system("du -shx "$1)}'
ファイルに対するシンボリックリンク作成の基本形 # test.sh -> dir1/dir2/dir3/hoge.py # [相対パスによるリンク先の指定] [リンク名] ln -s dir1/dir2/dir3/hoge.py hoge.py リンク名がリンク先と同一ならば # test.sh -> dir1/dir2/dir3/hoge.py # [相対…