Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

シェルコマンド/シェルスクリプト

【ffmpeg】動画をN倍速にエンコードし直したい

ffmpegは動画のエンコードをするのに便利です 参考 ffmpegを使って動画の再生速度を変えてみる - 脳内メモ++ 再エンコードせずに fps を変更する | ニコラボ コマンドメモ 動画を2倍速にするには ffmpeg -i input.mp4 -vf setpts=PTS/2 -af atempo=2 outpu…

【シェルコマンド】xargsを使ってコマンドの出力を別のコマンドに渡して実行したい

初期設定 以下のような内容のファイルがあるとします % cat hoge.txta 1 xb 2 yc 3 z awkを使うと任意の列のデータを取り出せます $2と$1に変えるとa, b, cになるはず awk '{print $2}' hoge.txt 123 ファイルの中身を使ってディレクトリを作成したい この結…

【シェルコマンド】grepした結果をmoreで見た時に色をつけておく方法

cat "hoge.txt" | grep -B 10 --color=always "AAA" | more みたいな感じでmoreをしても色をつけていられる grep -B 10 はAAAがヒットした場所に前の10行も同時に表示してくれる -Aだとヒットした後の10行とか less -R みたいなのもあるらしいけど、自分の環…

【gnuplot】enhanced というターミナルオプションについて

set terminal x11 の代わりに set terminal x11 enhanced と打ってみると、色々なことができる! 例えば set xlabel "x^2"set ylabel "y^2"set title "{/Symbol W}"plot x**2 lw 3set terminal pdf enhanced fsize 10set output "hoge.pdf"rep とか打ってみ…

【シェルスクリプト】for文で1ずつ変化しない場合

過去記事 【シェルスクリプト】よく使うテンプレ的な何か - Bus errorとSegmentation faultに困ったら見るブログ for文とかwhile文は↑を参照 これ以外にも for*1doecho $idone という書き方のfor文がある。 これの最後の1周ごとに行う処理を i+5 とかに変え…

【シェルコマンド】splitで長いファイルをn行ごとに分割する

Linux | 容量, 行数指定でファイル分割(split) & 分割ファイルを結合(cat) - わくわくBank split -l [行数] [ファイル名] [prefix] で、指定した行数ごとにファイルを分割できます 分割されたファイルの名前は特に指定していないと、 xaa xab xac xad・・・ …

【シェルコマンド】basenameとdirname

dirnameでディレクトリ名だけを取り出す % dirname /usr/local/bin/fftwf-wisdom/usr/local/bin basenameでファイル名だけ取り出す % basename /usr/local/bin/fftwf-wisdom fftwf-wisdom

【シェルコマンド】echo $PATHとecho $pathの違い

使っているシェルはzshです $ echo $PATH/sw/bin:/sw/sbin:/usr/local/root/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin: $ echo $path/sw/bin /sw/sbin /usr/local/root/bin /usr/bin /bin /usr/sbin /sbin /usr/local/bin のように、パス同士の区切…

【シェル】憎きプロセスをkillしたくなったら取る方法

ps -xkill [PID] [PID]はkillしたいプロセスのプロセスIDps -xで[PID]を確認する ------ どこかにメモった気がしたけど見つけられなかったので追記 もしプロセス名にhogeと入っているジョブを一気にkillしたいときは以下のようにすればいい kill `ps -ef | g…

【awk】コマンドで疑似乱数を使ってみる

それでは表題の通り、awkコマンドで疑似乱数を使ってみる srand()でまず初期シードを与えて、rand()で乱数を出力させるsrandに何も引数を与えないと、現在時刻が初期シードになる randの返り値は0から1の実数0から100までの整数の乱数が欲しい場合は int(100…

【awk】10を底とするlogで出力したいとき

awkにはcosやらsinやらexpやらintやらよく使われる関数が一通り揃っている しかし今回10を底とするlog xが欲しかったが、そのままでは出てこなかった 調べてみたら awk '{print log(x)/log(10)}' hoge.txt でよかった なんでこうなるかは、高校2年生で習いま…

【シェルスクリプト】ファイル名に空白文字が入っていても処理する方法、trで置換してみる

for i in `ls *.txt` という感じで、カレントディレクトリにあるtxtという拡張子のファイルを一気に取り扱うことが多々ある しかしそのファイル名に空白文字が含まれていると、for i in の下で分解されたときに2つのファイル名だと勘違いされて実行されてし…

【Emacs】コード内の文字の置換

c-x hm-x replace-string[before word][after word] って打てば置換できる。 control + hで全体を選択m-xのmはメタキー、おそらくエスケープでおーけーreplace-stringは適時tabを押せば候補を表示してくれる ■ 参考 meadow(Emacs)で基本的な文字置換 | シド…

【シェルコマンド】trコマンドはsedよりお手軽に置換できる(ただし1文字置換に限る)

自分はコマンドで置換を最初にやろうと思ったときに、sedを教えてもらった色々と便利なんだけど、覚えることがかなりあるので使うときは毎回調べないといけない・・・ そんなときに見つけたのがtrというコマンド使い方は至ってシンプル tr "hoge" "foo" < fo…

【シェルコマンド】あるファイルの中にある空白行やある文字が入った行を削除したい

sedの基本的な使い方 cat hoge.txt | sed -e "s/AAA/BBB/g" 基本的にはこんな感じの使い方 ここでAAAやBBBにどこかのPATHが入っているとエラーが出る"s/AAA/BBB/g"の真ん中にある/とPATHの/の区別がつかないからコーテーションマークで区切ればうまくいくか…

【シェルコマンド】#と%を使ってファイル名の一部や拡張子を取り出す

#(シャープ)と%(パーセント)をシェルスクリプトで用いるとファイル名の一部のみを取り出したり、拡張子を取り出したりできて便利 %は後ろから #は前から 一致してるかどうか探す。マッチしてる部分を取り除いて返す。 分かりやすいように使用例 $ FILENAME=h…

【シェルコマンド】touchで空のファイルを作成する + 最終更新日を更新する

(元記事 2012/02/09) iPad touch ではないです。 touchコマンドでは今まで、空のファイルを作成するコマンドだと思ってたけど実は全然違う使い方をするみたい・・・・ touch hoge.txt で、hoge.txt の最終更新日時を更新できる オプションで、任意の時間を指…

【シェルスクリプト】小数点以下を切り捨てたい

(元記事 2012/01/22) $ echo 123.567 | sed s/\.[0-9,]*$//g123 または $ VAL1=123.456$ VAL2=${VAL1%.*}$ echo $VAL2123 最近まで使いこなせなかったけど、%と#を使うと色々と便利例えば、拡張子のみを取り出したり、拡張子を外した名前部分だけを取り出し…

【awkを使って】データのある行を取り出したいとき

(元記事 2012/01/21) 次のようなデータファイルがあるとする。 % cat hoge.dat1 1.1 2.22 2.2 3.33 3.3 4.44 4.4 5.55 5.5 6.66 6.6 7.77 7.7 8.88 8.8 9.99 9.9 10.1010 10.10 11.11 これのある行(例えば3行目)だけ表示させたいときは次のように打てばよい …

【シェルコマンド】beep音を出したい

(元記事 2012/01/01) 実行時間が長いシェルスクリプトなどを使う際に、終わった後にbeep音などで知らせてくれると便利。 echo -e "\a" 研究室でカップラーメンを作るときに echo -e "start\a" ; sleep 180 ; echo -e "tabegoro\a" とか使えるかも・・・ ただ…

【シェルスクリプト】よく使うテンプレ的な何か

(元記事 2012/01/01) シェルスクリプトの書き出し #!/bin/sh 以後、shスクリプトでよく使うものににいてまとめる(テンプレ) シェル変数の定義 スペースを空けないことに注意 hoge=HOOOOOOGEEEEEE for文 for [変数] in [リスト]do[繰り返し内容]done ;を使っ…

【シェルスクリプト】cutコマンドについて

(元記事 2012/01/01) cutコマンド $ cut [option] [filename] オプション -b バイトで切り出す# hoge.datの10バイト目から30バイト目まで切り出す$ cut -b10-30 hoge.dat # hoge.datの40バイト目までを切り出す$ cut -b-40 hoge.dat # hoge.datの5バイト目か…

【シェルコマンド】rsyncの使い方

(元記事 2011/12/19) 便利コマンドrsyncの使い方などについてまとめる。何をするコマンドか簡単に書くと、指定したディレクトリの内容を同期してくれるコマンドわざわざcpコマンドでオプションを使ったりしてシェルスクリプトを書く必要はない まずはversion…

【シェルコマンド】シンボリックリンクの貼り方

(元記事 2011/12/13) ln -s /Users/hoge/foo Alias_foo でおk これで /Users/hoge/foo というディレクトリへのAlias_fooというシンボリックリンクを作れる ----- (追記) シンボリックリンクは使いこなせるとかなり便利 windowsとかMacでもショートカットとい…

【シェルスクリプト】ファイルを1行ずつ読み込んで処理する

(元記事 2015/10/25) あるディレクトリにあるファイルのリストに対して処理をするときはよく、 #!/bin/shfor i in `ls *.txt`do echo $idone のような書き方を使う 今回は、あるファイルに書かれた各行に対してなんらかの処理をする場合、 #!/bin/shwhile re…

【シェルコマンド】HDF5形式のファイルのヘッダーなどの情報を表示する

h5py をanacondaでインストールしてると自動的にシェルコマンドも使えるっぽい その中でもhdf5ファイルの中身を表示するコマンドがh5dump ヘッダーの情報を返す h5dump -H ファイル名.h5 データセットの情報を返す h5dump -n ファイル名.h5 h5dumpのヘルプメ…

【雑記】Graphwizを使ってダイアグラムを書く

(元記事 2011/06/17) 便利なフリーソフトを見つけた気がしたので記事を書きます。 Graphviz www.graphviz.org DOT言語というのを変換してグラフを書いてくれるソフト DOT言語の詳しい記述についてはこちらを参考にどうぞ 次の環境で試しにフローチャートもど…

【シェルコマンド】grep時に前後の行も表示したい

grepの基本的な使い方 grep -n "aaa" hoge.txt これで、hoge.txtの中にaaaという行があるところだけが表示される 検索ワードの前後の2行を表示したい時は grep -n "hogehoge" -A 2 -B 2 grepで、検索ワードを除外したところを表示したい時 grep -v "bbb" hog…

【シェルコマンド】コマンドの出力結果を格納したい (リダイレクトのこと)

(2011/03/12 元記事) 例えば実行すると、次のような出力をするプログラムがあるとき(改行はそのまま改行を意味する) 1 2 34 5 67 8 9 これをfopenでhoge.datというファイルを新規作成して、fprintfで書き込んでfcloseするのがめんどくさいときに次のようにす…

【シェルスクリプト】bcコマンド

(2011/02/14 元記事) Bus errorとSegmentation faultに困ったら見るブログ 【シェルスクリプト】bcコマンド ターミナルで実数を扱いたくてコマンドを色々調べました。 exprというコマンドは四則演算はできるものの、整数しか扱えないそこでbcコマンドの登場…