トップページunix
1001コメント297KB

シェルスクリプト総合 その22

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2013/11/01(金) 07:58:50.52
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。
  http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sh/
  http://heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
 (理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
 正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆーな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
 「そういうのはperl使いましょう」と回答するのはやめましょう。
 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その21
http://toro.2ch.net/test/read.cgi/unix/1352973453/
0749名無しさん@お腹いっぱい。2014/05/21(水) 18:35:56.58
>>746
お察しの通りFreeBSDだが、FreeBSDは脱GPL脱GCCの実績が有るし今後に期待?
0750名無しさん@お腹いっぱい。2014/05/21(水) 20:41:31.00
>>748
http://rosettacode.org/wiki/Run-length_encoding
ぐぐったらsed版とawk版があるな
つーかrun length encodingって必要になった状況ないな
0751名無しさん@お腹いっぱい。2014/05/22(木) 00:16:14.56
RELENG_5あたりでbaseからは脱Perlしてるじゃねえの
0752名無しさん@お腹いっぱい。2014/05/22(木) 09:09:18.24
確かに今では base に perl が含まれてはいませんが、実際に perl を入れずに
運用しているサーバを私は見たことがありません。
でも perl が入ってないサーバって、実は世の中には結構あるんですかね?
0753名無しさん@お腹いっぱい。2014/05/22(木) 09:30:02.07
>>752
じょ、冗談で書いてるんだよね?
0754名無しさん@お腹いっぱい。2014/05/22(木) 10:12:42.49
>>753
というと?
0755名無しさん@お腹いっぱい。2014/05/22(木) 12:16:17.56
perlなんて当然入れてない
0756名無しさん@お腹いっぱい。2014/05/22(木) 12:20:57.50
元からperlなんて入っていないし、要らない。
必要なら入れれば?な感じ。
0757名無しさん@お腹いっぱい。2014/05/22(木) 15:33:22.17
Debian wheezyの標準的なapt-lineで、各言語に依存するものの数を数えた。
その言語自身のセクションと、libsは除いてみた。
$ for l in perl python ruby ;do echo -n "$l ";aptitude search ~D$l\!~s$l\!~slibs|wc -l;done
perl 962
python 1603
ruby 204
0758名無しさん@お腹いっぱい。2014/05/22(木) 15:41:24.61
今日からperlやめてnode.jsに移行してみる
0759名無しさん@お腹いっぱい。2014/05/22(木) 21:37:53.41
>>758
それでタイプ量の多さに失望するんですね。
0760名無しさん@お腹いっぱい。2014/05/24(土) 11:07:22.49
シェルでテキスト処理の部分だけperlでやるのが一番無難だと思うけどなぁ。
sh系なら-e''の中に改行含めれるし。

最近はもう、awkをさけるようになったなぁ
なんで正規表現の互換性をなくしてしまったのか。
0761名無しさん@お腹いっぱい。2014/05/24(土) 11:56:11.33
>>742
autotoolsって、シェルスクリプトとm4とmakeで
できてるから、このスレ的には新参スクリプト言語よりは
歓迎なんじゃないかって気がするw
0762名無しさん@お腹いっぱい。2014/05/24(土) 21:11:49.14
「〜に依存する」だけならそれ入れれば済む話だが、
「auto」toolsはマニュアルで修正しないとコンパイル通らない場合が…
0763名無しさん@お腹いっぱい。2014/05/24(土) 21:55:46.18
修正マニュアルがあるならいいじゃないかw
0764名無しさん@お腹いっぱい。2014/05/25(日) 14:19:48.29
マニュアル=手作業 とマジレス
0765名無しさん@お腹いっぱい。2014/05/29(木) 00:34:01.91
FreeBSDが脱cshできればperlもしぼんでくと思う。だからまずしぼまない。
0766名無しさん@お腹いっぱい。2014/05/29(木) 17:22:41.57
いや、src.confでコンパイルしないようにするだけ。
もう、何年も前からcshは入ってないが何も不都合は生じてない
0767名無しさん@お腹いっぱい。2014/06/07(土) 16:19:13.77
数百万行のテキストをshのツールに食わせて実行結果を得る、なんてことをよくやるんだが、
プログレスバーを作って待ち時間のストレスを抑えようと思う
今何%進んでるかは実行行/全体行で簡単に分かるんだが、これを画面上に出力する時に、
単純に計算結果を出力するだけだと
 [05%]・・・・・
 [06%]・・・・・・
 [07%]・・・・・・・
という風に毎回改行されて表示されて画面が汚くなるのが嫌だ

つまり何が聞きたいかというと、既に出力された結果を書き換えるような仕組みはshで実現可能なのだろうか
分かりにくくてすまない
0768名無しさん@お腹いっぱい。2014/06/07(土) 16:20:12.71
>>767
^M
0769名無しさん@お腹いっぱい。2014/06/07(土) 16:26:43.02
^M のあと tput el しとくといいかも
0770名無しさん@お腹いっぱい。2014/06/07(土) 16:34:33.53
tputってFreeBSDで互換性ないんだよなぁ、、
0771名無しさん@お腹いっぱい。2014/06/07(土) 16:57:46.03
echo のオプションとか printf とかは?
0772名無しさん@お腹いっぱい。2014/06/07(土) 17:01:08.23
>>768-769
ありがとう。tputを初めて知ったが、勉強してみる
しかし^Mがわからん。何のことだ

>>771
echo -nで改行無し出力は出来るから、いわゆる伸びていく棒は再現出来た
が、すでに出力したn%のnを書き換えるような操作が出来ない
printfはそういうの出来るんだろうか?
0773名無しさん@お腹いっぱい。2014/06/07(土) 17:17:09.83
>>772
コントロール-Mを知らんのか? キャリッジリターンだぞ。カーソルは左端に戻る。
0774名無しさん@お腹いっぱい。2014/06/07(土) 17:23:46.19
マジかよ
いや^MがCtrl-Mなのは知ってたけどそんな効果あったのか
次会社いったら試してみる、ありがとう

ついでに調べてたら、某ブログでecho "\r\c"なるものを目撃した
これも同じ意味かな
0775名無しさん@お腹いっぱい。2014/06/07(土) 17:34:07.91
>>774
もしNetBSDならprogress(1)に逃げるって手もある
0776名無しさん@お腹いっぱい。2014/06/07(土) 17:47:05.14
echoはポータビリティに難があるのでprintfの方が良い
0777名無しさん@お腹いっぱい。2014/06/07(土) 17:49:02.97
printfもポータビリティに難があるが、、
0778名無しさん@お腹いっぱい。2014/06/07(土) 20:29:23.80
dialog --gauge もある
0779名無しさん@お腹いっぱい。2014/06/07(土) 20:46:07.95
>>770
FreeBSDがどうのというより、termcapとterminfoの違い。
0780名無しさん@お腹いっぱい。2014/06/07(土) 20:47:59.07
>>779
そんなことわかった上で言ってるんだがw
0781名無しさん@お腹いっぱい。2014/06/08(日) 00:08:18.41
rで行頭からかくか、エスケープシーケンスでいいんじないかな。
ただ、ログのこと考えると、ただ延びていくだけのプログレスで十分だと思うけどなー
0782名無しさん@お腹いっぱい。2014/06/08(日) 01:23:49.35
URL1=...
URL2=...
URL3=...

と定義して
for ((i=1;3>i;i++))
do
 処理
done

の形で $URL$i と書いても URL1 などに展開されないのだが
正しくはどう書けばよいのでしょうか?
0783名無しさん@お腹いっぱい。2014/06/08(日) 02:03:50.42
eval echo '$'URL$i

eval url='$'URL$i
echo $url
0784名無しさん@お腹いっぱい。2014/06/08(日) 02:38:49.86
配列にしちゃうとか。

declare -a URL
URL[1]=...
URL[2]=...
URL[3]=...

for ((i=1;4>i;i++))
do
 echo ${URL[$i]}
done
0785名無しさん@お腹いっぱい。2014/06/08(日) 02:48:13.36
>>767
数値とプログレスバーと両方あるといいね。rpm -ivh みたいに。
sun wsのブート時みたいに棒を回すのもなかなかいいよ
0786名無しさん@お腹いっぱい。2014/06/08(日) 02:58:19.85
i<3 にしよう
0787名無しさん@お腹いっぱい。2014/06/08(日) 03:04:42.61
シンタックスエラーでなかなか回答遅れて申し訳なかったです
とりあえず暫定的に下のforループでしのぎました。
数が多くなると保守性が終わるけど。

for i in $URL1 $URL2 $URL3
do
......
done


>>783,784,786
文字連結のための''を使った回避術、
declareを使った配列宣言、
いいアイデアをいただきました。ありがとうございます。
0788名無しさん@お腹いっぱい。2014/06/08(日) 07:08:45.79
棒回しいいなー
上書き方法会得したらそれも試してみよう
0789名無しさん@お腹いっぱい。2014/06/08(日) 07:47:05.10
while :; do
 for t in '|\r' '/\r' '-\r' '\\\r'; do
  echo -en "$t"
  sleep 0.1
 done
done
0790名無しさん@お腹いっぱい。2014/06/08(日) 16:28:53.32
何かと思ったら棒回しか
\\がうまくいきゃいいが
07917872014/06/08(日) 17:36:41.96
>>784
配列良いね
素晴らしく短くまとまった
保守性もばっちりだ
重ね重ね感謝申し上げる

URL=( \
#valiant
  http://m...
#watchSomething
  http://j...
#script
  http://b...
)

# download from URL, and add header
for ((i=0;i<3;i++))
do
 echo ${URL[i]}
done
0792名無しさん@お腹いっぱい。2014/06/08(日) 17:42:21.90
3から不変ならいいんだが、配列にするならこうしてみるのはどうか

for ((i=0; i<${#URL[*]}; i++))
do
 echo ${URL[i]}
done

手元に実行環境がなくて検証出来ないから間違ってたらスマン
0793名無しさん@お腹いっぱい。2014/06/08(日) 17:53:32.13
>>792
ありがとう。
httpで件数だけ埋め込む作業要らなくなった

${#配列名[*]}で取り出せるのか
こんな#が合ったなんて知らなかったよ
0794名無しさん@お腹いっぱい。2014/06/08(日) 21:41:28.47
テンポラリファイルの扱いについて訊きたい

一部のファイルをrmしてないバグがあるスクリプトを走らせてしまい/tmpに多数ファイルを残してしまった
このようなミスを抑える対策とかありますか
0795名無しさん@お腹いっぱい。2014/06/08(日) 21:45:16.18
>>794
入力、処理、出力、という流れを意識して、設計書を書き、
ポイントポイントで処理の目的に即したテスト項目を作って、
結果を他人が評価できるようにテストを実施することだよ
0796名無しさん@お腹いっぱい。2014/06/08(日) 22:51:32.33
>>794
シェルスクリプト一般だと、tmpfile(3)みたいにプログラムが終わると勝手に消える
ようにするのは難しいだろうね。頑張れば出来るかもしれないけど・・。

一時ファイルというと、とりあえずファイル名に$$を入れたりすることが多いけど、
そういうのを含めない(可能なら固定名にする)のが、バグがあっても
悲惨なこと(/tmpが枯渇するなど)にならない設計方法のひとつ。
もちろん可能な場合だけど
0797名無しさん@お腹いっぱい。2014/06/08(日) 23:43:54.83
>>794
オブジェクト指向で設計し、インスタンスの寿命が尽きる時にファイルが消去されてることを確認し、されていなければ破棄する。
サポートされていない言語だと例外時に忘れがちなので注意。
0798名無しさん@お腹いっぱい。2014/06/08(日) 23:53:29.64
開始時に mkdir /tmp/アプリ名-プロセス番号/ してそこに作業ファイルを置いて、終了時に
rm -f /tmp/アプリ名-プロセス番号 すれば良いだけでは?
trap 使えば SIGTERM とか SIGINT にも対応できるし、bash なら終了時にキックもできる。

複数インスタンスの稼働を想定しないなら >>796 の言うように名前固定して、既存ファイルが
ある場合にエラーでとまるようにするとかもアリかな。
0799名無しさん@お腹いっぱい。2014/06/09(月) 00:03:28.76
小手先の対応で何とかするよりも、ちゃんとテストする方がよかろうよ
0800>>7942014/06/09(月) 00:26:53.38
>>795-799
チェック漏れがこんなことになるとはなあ
/mntにはtempfsをマウントしていないから簡単には使い切れないのが幸いだった

tempfileとrmをループ外へ追い出してみるのと、こんな感じで一時ファイルの場所の移動を試してみます
export TMPDIR=$(mktemp -d)
trap "rm -rf $TMPDIR" EXIT

>>797
言葉足らずで申し訳ない。問題のスクリプはzshスクリプトです
0801名無しさん@お腹いっぱい。2014/06/09(月) 00:57:13.18
>>797はからかってるか、マジボケかのどっちかだろうよ
0802名無しさん@お腹いっぱい。2014/06/09(月) 02:38:45.23
trap "command" EXIT
なんて用法があったのか。やはりこのスレは勉強になる
0803名無しさん@お腹いっぱい。2014/06/09(月) 11:27:14.45
>>801
実装ミスであるなら、どんな仕組みを使っても同じ。
設計手法はそういったミスを抑えるためにもある。
そして設計ミスが生まれる。

おそらくは例外時だろうけど、具体的なバグを聞かないと実装による対処方法は確定しない。
0804名無しさん@お腹いっぱい。2014/06/09(月) 11:33:19.20
それより一時ファイルを作らない方法でシェルスクリプトを記述するのがいいよ。
パイプやコマンド置換でかなりのところまで行ける。
どうしても一時ファイルが要る場合でも、openしたまま先にrmしとくとかでかなり対処できる。
trap 'rm file' 0 とかで消すのはkill -9 された場合は無理だし。
0805名無しさん@お腹いっぱい。2014/06/09(月) 13:22:45.34
トラップ一家物語
0806名無しさん@お腹いっぱい。2014/06/09(月) 15:57:02.71
Cでオブジェクト指向っぽい事するのは例があるけど、
シェルスクリプトでやるのは労力に見合うのだろうか…
0807名無しさん@お腹いっぱい。2014/06/09(月) 16:03:28.20
Perlのblessされたスカラのリファレンスのようなもの?
0808名無しさん@お腹いっぱい。2014/06/09(月) 16:39:23.19
そもそも構造体がないからねえ
0809名無しさん@お腹いっぱい。2014/06/09(月) 20:29:57.19
そんなのより関数作るのが先だろ
0810名無しさん@お腹いっぱい。2014/06/09(月) 23:23:09.12
HEADER
AA(55)
AA(20)
FOOTER
となっているファイルを食わせて、
HEADER
AA(11)
AA(4)
FOOTER
を吐かせたい。
つまり()内の数値を5で割ったものを吐かせたいんだが、これをshでやるとしたらどういうやり方する?
試しにsed噛ませようと試みたけどあれ演算するのすごいめんどくさそうで
0811名無しさん@お腹いっぱい。2014/06/09(月) 23:39:14.15
つawk
0812名無しさん@お腹いっぱい。2014/06/09(月) 23:41:42.95
$ expr "AA(55)" : ".*(\([[:digit:]]\+\)).*"
55
$ echo $((55/5))
11
$
0813名無しさん@お腹いっぱい。2014/06/10(火) 00:06:17.61
IFS=
sed -e 's/\$/\\$/' -e 's!\(([0-9][0-9]*)\)!(\$((\1/5)))!g' | while read l; do eval echo "\"$l\"";done
0814名無しさん@お腹いっぱい。2014/06/10(火) 00:24:48.89
sedの中で$((\1/5))なんて出来るのか?
0815名無しさん@お腹いっぱい。2014/06/10(火) 00:55:00.72
出来ないね。でも>>813は要求仕様通りに動作する。
0816名無しさん@お腹いっぱい。2014/06/10(火) 01:23:49.76
$$(expr 式)
0817名無しさん@お腹いっぱい。2014/06/10(火) 09:08:48.05
>>814
sedにshスクリプトを書かせてるわけだね。
0818名無しさん@お腹いっぱい。2014/06/10(火) 10:03:19.34
今時の sh は bash か ksh93 が標準なのか…
0819名無しさん@お腹いっぱい。2014/06/10(火) 10:44:55.16
>>816
sed -e 's/\([$`]\)/\\\\\1/g' -e 's!\(([0-9][0-9]*)\)!(\$((\1/5)))!g' -e 's/^/"/'
-e 's/$/"/'|while read l; do eval echo "$l";done

>>818
$((expr))のこといってるならposix shellだよ
http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
08208182014/06/10(火) 12:11:58.44
>>819
Solaris8 や HP-UX10 あたりの sh は演算置換できなかった覚えがあるんだけど、
便利になったなあ…
0821名無しさん@お腹いっぱい。2014/06/10(火) 12:15:49.48
何に準拠してるかではなく、スクリプトを書かせてる発想が大事であって、自分の環境で動かなかったら書き換えればいいだけ。
08228102014/06/10(火) 12:29:01.86
おお……すごいな
自分の発想が貧困だったことを思い知らされる
ありがとう
0823名無しさん@お腹いっぱい。2014/06/10(火) 14:09:06.28
eval使うほどの案件じゃない
0824名無しさん@お腹いっぱい。2014/06/10(火) 14:28:20.32
威張るな
0825名無しさん@お腹いっぱい。2014/06/10(火) 14:32:11.80
eval使わずに、$((xx)) も使わずに:

while IFS='()' read a b; do
if [ "$b" ]; then
echo "$a(`expr $b / 5`)"
else
echo "$a"
fi
done
0826名無しさん@お腹いっぱい。2014/06/10(火) 14:53:54.80
>>825
AA(55) や AA(20) の行末に何か文字が入ってしまうとエラーになる
>>819 なら "AA(20) BB(100) CC(65)" とかになっていてもOK
0827名無しさん@お腹いっぱい。2014/06/10(火) 14:56:24.36
>>826
そんなことわかった上で、要求仕様だけ満たす最小限で書いているのだよ。
0828名無しさん@お腹いっぱい。2014/06/10(火) 14:58:01.83
悔しいのぅ〜悔しいのぅ〜
0829名無しさん@お腹いっぱい。2014/06/10(火) 15:05:19.71
>>826
>>819 は入力に " が1個とか(奇数個)含まれてるとエラーになるぞ。
>>825 ならOK
0830名無しさん@お腹いっぱい。2014/06/10(火) 15:08:54.44
ほらよ
sed -e 's/\(["$`]\)/\\\\\1/g' -e 's!\(([0-9][0-9]*)\)!(\$((\1/5)))!g' -e 's/^/"/'
-e 's/$/"/'|while read l; do eval echo "$l";done
0831名無しさん@お腹いっぱい。2014/06/10(火) 15:12:08.71
う〜〜ん、A("55") だったりすると >>825 はエラーになるね
>>819 はそのまま出力される…仕様外だからしょうがないのかもしれない
0832名無しさん@お腹いっぱい。2014/06/10(火) 15:13:25.19
>>830
お見事
0833名無しさん@お腹いっぱい。2014/06/10(火) 15:13:41.98
>>830
入力行中に半角¥があると消えちゃうねw
0834名無しさん@お腹いっぱい。2014/06/10(火) 15:15:51.89
素直にこうじゃいかんの?

while read line; do
case "$line" in
AA\(*\)) echo AA\(`expr "$line" : 'AA(\(.*\))' / 5`\) ;;
*) echo "$line" ;;
esac
done
0835名無しさん@お腹いっぱい。2014/06/10(火) 15:18:07.96
>>834
AA() の AAは固定という解釈か? BB() とかないの?
0836名無しさん@お腹いっぱい。2014/06/10(火) 15:20:27.44
>>835
対応は簡単だけど、要求使用外だから別料金
0837名無しさん@お腹いっぱい。2014/06/10(火) 15:25:43.37
\は厄介だな

IFS=
sed -e 's/\\/!!!rougue_monster!!!/g' -e 's/\(["$`]\)/\\\\\1/g' -e 's!\(([0-9][0-9]*)\)!(\$((\1/5)))!g' -e 's/^/"/' -e 's/$/"/' |while read l; do eval echo "$l";done | sed -e 's/!!!rougue_monster!!!/\\/g'
0838名無しさん@お腹いっぱい。2014/06/10(火) 15:28:31.93
>>833
>>825 でも "\AA(55)" とかのバックスラッシュは消えちゃうんじゃない
まぁ、バックスラッシュを保存したかったら入力側で "\\\AA(55)" とかして
おけば良いような
0839名無しさん@お腹いっぱい。2014/06/10(火) 15:33:12.06
>>838
>>825 は read を read -r にすればバックスラッシュ保存されるよ。
0840名無しさん@お腹いっぱい。2014/06/10(火) 15:36:44.33
そうすると今度は "AA(\55)" が…いや、仕様外だな
0841白バラ十字軍2014/06/10(火) 15:41:26.82
今では殺人事件凶悪事件が起こると創価員かというぐらい
ネットではささやかれる時代になりました。刑務所受刑者の33%は創価員という事実は有名な話ですが、以下を見れば納得ができます

創価員が裁かれる    判決の際 法廷にこだまする「 池 田 先 生 万 歳 !」
◎以下これ以外にまだまだ創価員の犯罪多数あり、書類送検されていないだけであなたの街でも多数すさまじい事件の数が
発生しましたし、まだまだ毎日のように創価員による凶悪事件は発生しているのです!
しかもこれ以外にもTVでも報道された凶悪事件多数あり!。あなたの周りにも潜んでいる。
危険です。危機的状況です。酒鬼薔薇だけではありません。実にたくさんいるのです
あなたの街でも善良な人間のように取り繕い潜んでいるのです。

●宅間守(在日)→大阪 附属池田小学校児童殺傷 創価学会員。大量殺人犯 。8人殺害 15人が重軽傷。悪徳 朝鮮人部落出身。
(悪徳カルト)両親も創価学会員。獄中結婚したが相手の女も創価員。さすが創価員は悪徳な者を好む。あえて結婚する
とは殺人破壊者を賛美、美化、擁護する行為 2004年死刑執行 獄中結婚した女は慰謝料損害賠償払ったのか?被害者に詫びたのか?
宅間は被害者に詫びていない。つまり・・・判決の際 法廷にこだまする「 池 田 先 生 万 歳 !」ということ
日本の犯罪史上、稀に見る大事件
●畠山鈴香 (在日)→秋田県児童連続殺害事件 創価学会員。悪徳。(悪徳カルト)
●斉藤勇太 →JR取手駅前バス無差別殺傷事件 創価学会員。悪徳。(悪徳カルト)
●酒鬼薔薇聖斗→ 東慎一郎(在日)神戸の首切り魔で酒鬼薔薇聖斗 創価学会員。神戸の首切り魔。生首を校門に飾る。悪徳2人殺害。
元在日朝鮮人。両親も創価学会員(悪徳カルト)
●福田孝行(在日)→山口県母子殺害 殺害後屍姦、乳児も殺害 創価学会員。悪徳(悪徳カルト)
●阿部隆 →長野母子バラバラ殺人事件(平成元年)船橋市幼児バラバラ殺人事件 千葉県船橋市の熱心な創価学会員・A・A子さんと長男
のHちゃんが、同じく学会員である夫のA・Tに殺された。動機は生活苦。バラバラにされた死体が聖教新聞に包まれ、長野県の山中に捨
てられていた 悪徳(悪徳カルト)
0842名無しさん@お腹いっぱい。2014/06/10(火) 17:33:57.23
お前らこういう問題好きすぎだろww
分かるけどさ
0843名無しさん@お腹いっぱい。2014/06/10(火) 18:07:53.19
そういやオライリーから「Data Science at the Command Line」って本が
8月に出版されるそうな

http://www.oreilly.com/pub/e/3115
https://twitter.com/jeroenhjanssens/status/474948853284999168/photo/1
0844名無しさん@お腹いっぱい。2014/06/10(火) 18:10:14.13
>>843
あくまでコマンドラインで操作するってだけで
シェルスクリプト関係なさそう
つーかこういうツールって大抵CLIだからわざわざタイトルに書かなくてもいいような
0845名無しさん@お腹いっぱい。2014/06/10(火) 20:07:24.97
素直にperlでいいじゃんと思った俺は負け組か。。。
0846名無しさん@お腹いっぱい。2014/06/10(火) 23:27:05.36
>>845
しかも Perl のワンライナーの方が速いっていう
0847名無しさん@お腹いっぱい。2014/06/10(火) 23:31:05.39
せやろか?
0848名無しさん@お腹いっぱい。2014/06/11(水) 00:19:36.58
速さより早さ。
■ このスレッドは過去ログ倉庫に格納されています