shell

xargsで1要素づつ実行

findで見つけたファイルを1個づつ、xargsでコマンドに渡したい場合、 以下のよーに記述する。ex. ~/xxxx/ggggフォルダ下の*.rbファイルを引数にhoge.rbを実行する。 ただし、1個づつ、渡して1回づつ実行し、引き渡すファイルパスは 第2引数で渡す。 find…

xargs補足

空白で区切っても、改行と同じく引数となる。(当然?) echo "aaa BBB ccc" | xargs -n 1 echo ↓ aaa BBB ccc

カウンタ

ct=0 ct=$*1 みたいな感じになる。 *1:$ct + 1

フォルダ内の指定拡張子のファイル名のみのリスト作成

find -name "*.wma" |gawk '{ print substr($1 ,3);}'↓ e-bus2_0122.wma e-bus2_0123.wma e-bus2_0129.wma e-bus1_0216.wma e-bus2_0220.wma↓ カレントDIRになってないとダメ。。。orz

差分リスト作成シェルの作成

/xxx/xxxx/gggg.wma /xxx/xxxx/gggg.mp3 /xxx/xxxx/gggg2.wma /xxx/xxxx/gggg2.mp3 /xxx/xxxx/gggg3.wma /xxx/xxxx/gggg4.mp3 /xxx/xxxx/gggg4.wma /xxx/xxxx/gggg5.wma↓/xxx/xxxx/gggg3.mp3 /xxx/xxxx/gggg5.mp3を、標準出力するようなシェル ↓ で、最終的…

xargs

cat ./hoge.lst | xargs -n 1 wma2mp3↑ hoge.lst /xxx/xxxx/gggg.wma /xxx/xxxx/gggg2.wma /xxx/xxxx/gggg3.wma↓wma2mp3 /xxx/xxxx/gggg.wma wma2mp3 /xxx/xxxx/gggg2.wma wma2mp3 /xxx/xxxx/gggg3.wma

wma -> mp3変換

○前準備 以下を、synapticでインストール mplayer lame gawk(→日本語処理をできるので、gawk(GnuAwk)を使う)○変換コマンド mplayer 元ファイル.wma -ao pcm:file=一時ファイル.wav lame 一時ファイル.wav 変換.mp3↓ シェル化 ↓ ############################…

Shell-modeでlsが文字化けする対処

カラー表示が対応していないらしい↓.bashrcにカラー表示を切るよう、lsにaliasを設定 if [ ${TERM} = "dumb" ]; then alias ls="ls --color=never" fi;

ディレクトリ間のファイル有無比較

Aディレクトリと、Bディレクトリのファイル有無の差異を比較 diff -I ".*" -r A B diff -I ".*" -r /xxxxxx/downloads/html_docs/emacs-w3m.namazu.org/info/ /xxxxxx/docs/emacs/w3m-emacs/ |grep -e 'emacs.*\.html' -o|sed 's/emacs-w3m\.namazu\.org\/in…

改行コードの変換

★Mac -> Unix $ tr \\r \\n unix.txt ★Windows -> Unix $ tr -d \\r unix.txt ★Unix -> Windows $ perl -p -e 's/\n/\r\n/' windows.txt →sedでも同じ事が出来るハズ

文字列の一括置換

grep xargs sed を使って、一括置換する・対象検索文字列を含むファイルの一括置換 grep "検索文字列" 対象ファイル -l | xargs sed -i 's/検索文字列/置換文字列/g' ex. grep '/Users/pies/Desktop/downloads/flex.ee.uec.ac.jp/texi/emacs-jp' *.html -l |…

sed

ファイルの文字置換 cat 入力ファイル|sed "s/置換対象文字列/置換文字列/" > 出力先ファイル (出力先ファイルを省略時、標準出力へ出力) ex. cat hoge.txt |sed "s/#{foo_bar}/hogehoge/" > hoge_hoge.txt hoge.txt内の#{foo_bar}と言う文字列を、hogehog…

awk

変数を大文字化・小文字化・小文字化 to_lower() { local tmp=`echo ${1}|awk '{print toupper(${0})}'` echo "${tmp}" }hoge="`to_lower ${hoge}`"・大文字化 to_upper() { local tmp=`echo ${1}|awk '{print toupper(${0})}'` echo "${tmp}" }hoge="`to_up…

変数のレングス

${#変数名} ex. hoge="123456" echo "${#hoge}" ↓ 6

testコマンドの演算子

・文字列比較 string 文字列が空でなければ真 string1 = string2 文字列が等しければ真 string1 != string2 文字列が等しくなければ真 -n string 文字列が空でなければ真 -z string 文字列が空なら真 ・算術比較 expression1 -eq expression2 = expression1 …

シェルの引数の列挙

for 変数名 in $* do echo $変数目 done

環境変数の存在確認

-z : 文字列が0バイトかどうか確認 -n : 文字列が0バイトでないかどうかを確認ex. if [ -z "$FOO_BAR"]; then echo "empty or not define!" export FOO_BAR="hoge"fi;if [ -n "$FOO_BAR" ]; then echo "$FOO_BAR" fi;

bash デバッグ(bashdb)

○インストールsudo apt-get install bashdb ○使い方・起動 bashdb /スクリプトパスex. bashdb ./hoge.sh・コマンド h ヘルプ s 1行実行b *(行番号) ブレークポイント設定D *(行番号) ブレークポイント削除 D a ブレークポイント全削除n ブレークポイントま…