シェルスクリプト総合 その21
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん@お腹いっぱい。
2012/11/15(木) 18:57:33.11□お約束
・特記なき場合は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に逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その20
http://toro.2ch.net/test/read.cgi/unix/1339083351/
0836名無しさん@お腹いっぱい。
2013/08/08(木) NY:AN:NY.ANクライアング運用ならashのが劣っている点はなんですか?
0837名無しさん@お腹いっぱい。
2013/08/08(木) NY:AN:NY.AN0838名無しさん@お腹いっぱい。
2013/08/08(木) NY:AN:NY.AN0839名無しさん@お腹いっぱい。
2013/08/08(木) NY:AN:NY.AN0840名無しさん@お腹いっぱい。
2013/08/08(木) NY:AN:NY.AN0841名無しさん@お腹いっぱい。
2013/08/08(木) NY:AN:NY.AN0842名無しさん@お腹いっぱい。
2013/08/08(木) NY:AN:NY.AN0843名無しさん@お腹いっぱい。
2013/08/18(日) NY:AN:NY.ANruby command not foundになってしまいます。
ログインシェルじゃないから.bashrcが読み込まれていないのが原因だと思いますがsourceで読み込んでみたり、bash -l -cなども試しましたがやはり読み込んでくれません
どこで質問したらいいかもわからず、もしすれ違いなら誘導して頂けると嬉しいです
0844名無しさん@お腹いっぱい。
2013/08/19(月) NY:AN:NY.ANまあ、個人設定に依存するものをシステムワイドな環境で実行できるようにするのは
セキュリティホールなので、できたとしてもやらない方がいいと思うけど。
# ruby を実行させるコマンドだったはずなのに後でユーザが破壊的な処理をする
# スクリプトに置き替えたら、システムの権限で動いてしまう。
# postfix なら root では実行されないのでまだマシだけど。
0845名無しさん@お腹いっぱい。
2013/08/19(月) NY:AN:NY.ANこれ使えば、楽なんだけど
0846名無しさん@お腹いっぱい。
2013/08/19(月) NY:AN:NY.ANsendmailでやってたのずいぶん昔の話だから覚えてないや。
0847名無しさん@お腹いっぱい。
2013/08/20(火) NY:AN:NY.ANhttp://www.postfix.org/postconf.5.html#local_command_shell
0848名無しさん@お腹いっぱい。
2013/08/20(火) NY:AN:NY.ANPostfix(8)
http://toro.2ch.net/test/read.cgi/unix/1227953898/
0849名無しさん@お腹いっぱい。
2013/08/20(火) NY:AN:NY.AN「pipeを使って」とは http://www.kobitosan.net/postfix/trans-2.2/jhtml/pipe.8.html
これのこと?
そして実行したいrubyのプログラムを実行するシェルスクリプトをpipeのコマンドとして指定してるということ?
だとしたら rbenv で、どれかのrubyを選択しているときのシェルの環境変数を調べて、
postfixのpipeで実行しているシェルスクリプトの最初で同じになるように設定すれば、なんとかならないかな?
0850843
2013/08/20(火) NY:AN:NY.AN0851名無しさん@お腹いっぱい。
2013/08/27(火) NY:AN:NY.AN各々のファイル名を取得してそのファイル自身にファイル名を書き込むというか追加していく
というシェルスクリプト教えて下さい!
0852名無しさん@お腹いっぱい。
2013/08/27(火) NY:AN:NY.AN学校の宿題っぽいな。
テキストファイルの拡張子がtxtだったとすると、
ワンライナーで、
$ for t in *.txt; do echo $t >> $t; done
でいけると思うが、宿題でなければこれで解決だろ。
0853名無しさん@お腹いっぱい。
2013/08/28(水) NY:AN:NY.AN宿題ではないですが超初心者です。
テキストファイルなんですが拡張子が付いてないので
試しに.txt拡張子追加してから
$ for t in *.txt; do echo $t >> $t; done
をtest.shという名前で保存して
テキストファイルがあるフォルダに放り込んでchmod +xしてから
実行しました。エラーもなく終わるんですが、どこにもファイル名が追加
されてないようです。
0854名無しさん@お腹いっぱい。
2013/08/28(水) NY:AN:NY.ANbash test.shしてみなさい
0855名無しさん@お腹いっぱい。
2013/08/28(水) NY:AN:NY.ANありがとうございます!
0856名無しさん@お腹いっぱい。
2013/08/28(水) NY:AN:NY.ANということは、もしかしてtest.shを実行するつもりで
$ test
ってやりました?
0857名無しさん@お腹いっぱい。
2013/08/28(水) NY:AN:NY.ANなぁ?
0858名無しさん@お腹いっぱい。
2013/08/28(水) NY:AN:NY.ANそれに気づいて改行コード直したら、今度は
>>852さんの
$ for t in *.txt; do echo $t >> $t; done
をそのまんまコピペして行頭の$を取るの忘れてsyntax error出ました。
それでやっと$取り忘れたの気がついて動きました、お手数かけてすみませんでした。
0859名無しさん@お腹いっぱい。
2013/09/04(水) 02:17:02.05でもブロックデバイスでしか動作しないソフトがある・・・てことで、
/dev/disk/by-idやmultipath -lのようなコマンドでメジャー/マイナー番号を引き、
mknodで固定的なデバイスを作成する
・・・みたいなことをシェルで実装したいのですが可能なものですか?
0860名無しさん@お腹いっぱい。
2013/09/04(水) 03:37:09.690861名無しさん@お腹いっぱい。
2013/09/04(水) 07:11:59.18変な小細工せずに、/etc/udev/rules.d/??-persistent.rules で設定して
SCSIデバイス固定にするのが筋だろ。
0862名無しさん@お腹いっぱい。
2013/09/06(金) 19:49:14.08で出てくる条件で固有のものをさがして
ATTRS{model}=="FD-05PUQ",MODE="0666",SYMLINK+="fd0"
って感じでrulesに書くんだけどね。
一行のうち"=="が条件文で"="や"+="が実行文
0863名無しさん@お腹いっぱい。
2013/09/08(日) 18:32:55.58src以下と同じフォルダ構成をlinkフォルダ以下に作成し
src以下にある全ファイルのシンボリックリンクをlink以下の同じフォルダの場所に作成したいです。
そこに、src2以下も同様にシンボリックリンクを作成し、linkフォルダ以下ではsrcとsrc2がマージされた状態としたいです。
また、シンボリックリンクのリンク先は絶対パスではなく相対パスで設定しておきたいです(myrootフォルダごと移動しても動くようにするため)
srcとsrc2には、同じファイル名のファイルが入っていることはありません。
どんなスクリプトでできるでしょうか?
現在:
myroot/
link/
src/
a.txt
f1/
b.txt
f2/
f3/
c.txt
src2/
f2/
d.txt
0864863
2013/09/08(日) 18:33:28.24期待:
myroot/
link/
a.txt
f1/
b.txt
f2/
d.txt
f3/
c.txt
src/
以下略
自分でやろうとしてみたところ
フォルダを決め打ちにしてやったとしても
シンボリックシンクを相対パスで設定することがうまく思いつきませんでした
0865名無しさん@お腹いっぱい。
2013/09/08(日) 18:47:07.89そのために lndirってコマンドがあるんだけど。それじゃダメ?
あ、imakeとかxmkmfとかの系統のコマンドだから、年代物なんだけどね。
0866名無しさん@お腹いっぱい。
2013/09/08(日) 19:06:55.94返信ありがとう。lndir知りませんでした。
ですがlndirだとsrcは絶対パスを渡す必要があるようでした。
myrootを移動できるように、相対パスでできるとうれしいです
0867名無しさん@お腹いっぱい。
2013/09/08(日) 19:34:41.88何言ってんだよw
lndir に相対パス渡せるよ。普通相対パスで使うし。
0868863
2013/09/08(日) 20:20:29.08ありがとうございます!
相対パスで指定できました
カレントではなくlink からみた相対パスを指定するんですね
すみませんmanもちゃんと見ずに決めつけてしまってました
myroot $ lndir ../src link && lndir ../src2 link
0869名無しさん@お腹いっぱい。
2013/09/11(水) 23:16:48.16↓のような感じのCSV形式の通信ログがあります。
[日時],[送信元IP],[送信元Port],[宛先IP],[宛先Port],[TCPorUDP],[bytes],[通信時間(s)]
このログから送信元IPが"192.168.0.1"の行だけを抜き出したいのですが、
単純にgrep "192.168.0.1"とかすると、宛先IPが"192.168.0.1"の場合も
かかってしまいまつ。(´・ω・`)
2番目の要素のところだけで検索をかけられるような、簡単なコマンドとか
処理方法ってないでしょうか? ご存じでしたらおながいします。
0870名無しさん@お腹いっぱい。
2013/09/11(水) 23:26:35.43awk -F, '$2 == "192.168.0.1" { print }'
0872名無しさん@お腹いっぱい。
2013/09/16(月) 00:31:27.99例)echo "test"¥n"test"
→
test
test
bashは使えない環境のため、cshで実現をしたいのですが、可能でしょうか?
0873名無しさん@お腹いっぱい。
2013/09/16(月) 00:33:52.08> cshの組み込みコマンド echo で¥nを改行コードとして扱いたいのですが。
すみません、文字化けしてしましました・・・
¥n(円マーク)nです。
0874名無しさん@お腹いっぱい。
2013/09/16(月) 00:51:21.64もう一つ、教えてください。
#!/bin/csh -f
と、シェバンの中で-fを指定すると、.cshrcの中で指定したエイリアスが有効になりません。
login.cshrcなら有効になるかと考え設定したのですが、こちらでもダメでした。
他にエイリアスを設定するのに有効な場所はないでしょうか。
0875名無しさん@お腹いっぱい。
2013/09/16(月) 01:19:53.67もう1つだけ。
組み込みコマンドを無効化することはできないでしょうか。
組み込みコマンドを無効にし、Gnu Coreutilesのechoを利用する、という方法も検討したいのですが。
0876名無しさん@お腹いっぱい。
2013/09/16(月) 01:33:38.17echo をフルパス指定で実行すれば?
0877名無しさん@お腹いっぱい。
2013/09/16(月) 02:02:57.34> >>875
> echo をフルパス指定で実行すれば?
ありがとうございます。
既存のアプリケーションを改修できないため、フルパスでの指定は不可能なのです。
# 既存のソースコーソは#!/bin/csh -f ; echo "hogehoge"ときさいされており。
0878名無しさん@お腹いっぱい。
2013/09/16(月) 08:54:19.20修正できないっていう前提がおかしい
0879名無しさん@お腹いっぱい。
2013/09/16(月) 09:54:54.21> シェルスクリプトなんだから改修ぐらいしろよ
> 修正できないっていう前提がおかしい
そうですよね。プロジェクトの方針なので・・・
複数システムとソースを共有しており、1箇所ソースを修正すると
複数システムに影響があるため許可が出なく。
修正するべきだと思うのですが。
0880名無しさん@お腹いっぱい。
2013/09/16(月) 09:57:13.27可能だと思いますが、なぜできないかもしれないと思われるのでしょうか。
0881名無しさん@お腹いっぱい。
2013/09/16(月) 10:05:41.73-fは環境を引き継がないプロセスの起動になるので、エイリアスだけでなく、その他も引き継げなくなります。
一行目のシェル宣言はシェル起動時に実行ファイルではなく、シェルの引数として渡すことで無視されます。
% csh 実行ファイル.csh
0882名無しさん@お腹いっぱい。
2013/09/16(月) 10:22:31.51> 可能だと思いますが、なぜできないかもしれないと思われるのでしょうか。
実際に夏季のようなスクリプトを書いて挙動を確認したのですが、
¥nが文字列として扱われ、改行記号として扱われませんでした。
% cat 1_test.csh
#!/bin/csh
type echo
which echo
echo "abc\ndef"
% ./1_test.csh
echo is a shell builtin
echo: shell built-in command.
abc\ndef
bashだと-eを使うことでうまく処理できるのですが。
echo -e "ttt\nttt"
ttt
ttt
0883名無しさん@お腹いっぱい。
2013/09/16(月) 10:29:07.00> 一行目のシェル宣言はシェル起動時に実行ファイルではなく、シェルの引数として渡すことで無視されます。
> % csh 実行ファイル.csh
cshの引数にしたのですが、実行ファイルの先頭で宣言しているためやはり無効化されるようです。
◯-f付きのシェルファイル
% cat 2_test.csh
#!/bin/csh -f
type echo
which echo
echo "ghi\nlmn"
◯呼び出し元のシェルファイルでエイリアスを設定後、cshの引数として実行
% cat test.csh
#!/bin/csh
alias echo /bin/echo
csh ./2_test.csh
% ./test.csh
echo is a shell builtin
echo: shell built-in command. (←エイリアスが無効になっている)
ghi\nlmn
0884名無しさん@お腹いっぱい。
2013/09/16(月) 11:01:58.54いくつかの環境で試したのですが、シェルファイルではうまくいく環境もありました。(コマンドラインは大体ダメでした)
妥協になりますが、素直に改行するのはどうでしょうか?
echo "abc"
echo ""
echo "def"
どのシステムでも動くと思いますので、安全度が増します。
0885名無しさん@お腹いっぱい。
2013/09/16(月) 11:12:56.37> 妥協になりますが、素直に改行するのはどうでしょうか?
そうですね、最終的にはロジックを修正してすすめることになると思います。
が、修正せずに進められるのでしたらそのほうがよく。
> どのシステムでも動くと思いますので、安全度が増します。
そうですね・・・移植性の高いソースにするには、そうすべきだと思います。
0886名無しさん@お腹いっぱい。
2013/09/16(月) 11:37:28.95.cshrcか何かにaliasの設定はしていますか?
呼び出し元で定義したaliasは引き継がれません。
環境変数や変数などは引き継がれないことがあるので注意が必要です。
0887名無しさん@お腹いっぱい。
2013/09/16(月) 13:59:13.40> % csh 実行ファイル.csh
それが許されるなら、
alias echo /bin/echo
を書いたファイル "foo" を用意して、
$ cat foo 実行ファイル.csh | csh -f -s
で実行すればいいのでは
0888名無しさん@お腹いっぱい。
2013/09/16(月) 20:28:28.64(set path = ($path hoge) のようなものは避ける)
source .cshrcで読んでしまえばいいんじゃないの?
0889名無しさん@お腹いっぱい。
2013/09/16(月) 21:44:09.50↓のスレに移動してこっちへは帰ってくんな!
C shell 撲滅委員会
http://toro.2ch.net/test/read.cgi/unix/1094041299/
0890名無しさん@お腹いっぱい。
2013/09/16(月) 22:15:45.70csh が大好きだから csh で開発するぜ!
って話じゃないんだから悪くないだろ。
0891名無しさん@お腹いっぱい。
2013/09/16(月) 22:30:01.35返事が遅れてすみません。
.cshrcを利用することは諦めました。
全スクリプトファイルが共通で呼び出している設定ファイルがあるのでそこにセットすることに・・・
0892名無しさん@お腹いっぱい。
2013/09/16(月) 22:35:03.48こんなかんじでしょうか?
% cat .cshrc
alias ll ls -ltr
% cat test.csh
#!/bin/csh -f
source ~/.cshrc
ll
こちらも検討してみましたが、作りがイケてなくて重複が発生してしまいました。。。
0893名無しさん@お腹いっぱい。
2013/09/16(月) 22:36:48.32そうですね。私も普段はkshとbashを使ってるのですが。
なかなか、スクリプトを書くのは難しいシェルですね。
0894名無しさん@お腹いっぱい。
2013/09/16(月) 22:41:04.42結局、bashでechoを自作。
アプリケーション共通の環境変数ファイルにエイリアスを設定し、echoをCallされたら自作のechoを呼び出すようにしました。
apl_env:alias echo ~/echo
echo:#!/bin/bash;echo -n -e $1
こんなかんじです。。。
アプリケーションをいじれなかったりシェルがcshだったりといろいろ厳しいですね・・・うーむ。
0895名無しさん@お腹いっぱい。
2013/09/16(月) 23:33:30.83> >>883
> .cshrcか何かにaliasの設定はしていますか?
それにしても、aliasはどこで設定するのが正しいのでしょうかね?
shebangに-fを設定すると.cshrcが読み込まれないとすると・・・
各アプリケーションやユーザに共通の設定ファイルを作成し、アプリケーションを実行するときにそれを叩いてから実行するのがただしいのでしょうか?
本来、その手の共通ファイルは.cshrcかと思っていたのですが。
0896名無しさん@お腹いっぱい。
2013/09/16(月) 23:42:02.64man cshで分かりますが、-fはリソースやセットアップファイルを読まない、事前コマンドを実行しない、なので起動が早い
というときに使います。
aliasはcshの場合、.cshrcで基本的には書きます。
逆に言えば、-fは呼び出しユーザの環境を引き継ぎたくない時に使います。
0897名無しさん@お腹いっぱい。
2013/09/16(月) 23:48:48.49> aliasはcshの場合、.cshrcで基本的には書きます。
> 逆に言えば、-fは呼び出しユーザの環境を引き継ぎたくない時に使います。
ありがとうございます。
-fを使っており、かつ、エイリアスだけを使用したい場合、というのは本来ありえないのですね・・・
shebangに-fをつけた場合、個別に必要最低限の設定だけをスクリプトに設定する、ということですね。やっぱりそうですよね・・・要求が矛盾している、ということが納得出来ました。ありがとうございます。
0898名無しさん@お腹いっぱい。
2013/09/17(火) 09:56:45.56あれはコマンドラインで人間がラクするために使うものであって、
スクリプト中で alias なんぞ使わないのが正しい。
0899名無しさん@お腹いっぱい。
2013/09/17(火) 10:04:20.08#!/bin/sh
echo hoge
!!
ってやっても、!!: command not found
になります><
もちろん、2回同じコマンド書けばいいだけですが、
スクリプトのファイルサイズも節約したいので !! が使いたいです。
使えるようにする方法をご存知の方、女教授ください。
0900名無しさん@お腹いっぱい。
2013/09/17(火) 10:23:48.60!!じゃなくて申し訳ないけど、再利用するなら変数に入れたらどうなの?
#!/bin/sh
CMD="echo hoge"
$CMD # 1回目
$CMD # 2回目
0901名無しさん@お腹いっぱい。
2013/09/17(火) 10:38:44.78Bourne shellは履歴機能がないので、履歴系のコマンドは使えません。
何度も書くか、>>900のように変数に入れて実行になります。
0902名無しさん@お腹いっぱい。
2013/09/17(火) 13:29:56.43!!(){ echo hoge;}
!!
0903名無しさん@お腹いっぱい。
2013/09/17(火) 14:32:38.900904名無しさん@お腹いっぱい。
2013/09/17(火) 22:37:25.630905名無しさん@お腹いっぱい。
2013/09/17(火) 22:51:17.74> >それにしても、aliasはどこで設定するのが正しいのでしょうかね?
>
> あれはコマンドラインで人間がラクするために使うものであって、
> スクリプト中で alias なんぞ使わないのが正しい。
なるほど。
変数に設定しておけば、いいですしね。
次から機会があれば参考にさせていただきます。
0906名無しさん@お腹いっぱい。
2013/09/18(水) 06:21:30.43`:': not a valid identifier
0907名無しさん@お腹いっぱい。
2013/10/13(日) 20:08:45.64sedあたりが\bで単語 境界を設定できるようだがそれを利用して書けないだろうか?
|sed -e 's/.*\(\b.*行.*\b\).*$/\1/'
だと「文章」は
実行したい
になる。あと少しが足りない。
文章↓
そして実行したいrubyのプログラムを実行するシェルスクリプトをpipeのコマンド
0908名無しさん@お腹いっぱい。
2013/10/13(日) 23:04:55.97$ cat aaa
そして実行したいrubyのプログラムを実行するシェルスクリプトをpipeのコマンド
$ sed -e 's/.*\(\b.*行.*\b\).*$/\1/' aaa
実行するシェルスクリプトをpipeのコマンド
0909名無しさん@お腹いっぱい。
2013/10/14(月) 00:06:21.49この場合だと「実行」が取り出せれば完成。
例えばこのスレでは使われた漢字の多い順に
174 行
136 無
134 使
となっている。
うまく行を含む単語、このスレでは「実行」が一番多く(だいたい78個)
最終的には一番頻度の高い単語である「実行」でgrepしようと思ってる。
平たく言えば「斜め読み」の補助、斜め読みの切り口の一つとして
単語切り出したい。
0910名無しさん@お腹いっぱい。
2013/10/14(月) 02:01:21.99この辺使ってがんばれ。
http://ja.wikipedia.org/wiki/%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90#.E5.85.A5.E6.89.8B.E5.8F.AF.E8.83.BD.E3.81.AA.E6.97.A5.E6.9C.AC.E8.AA.9E.E3.81.AE.E5.BD.A2.E6.85.8B.E7.B4.A0.E8.A7.A3.E6.9E.90.E3.82.A8.E3.83.B3.E3.82.B8.E3.83.B3.E3.80.80
0911名無しさん@お腹いっぱい。
2013/10/14(月) 02:27:28.77シェルスクリプトだとちょっとバックスラッシュ多くて困った感。見えにくいね。
perl 習得したら完成させてみる。
http://2ch-ita.net/upfiles/file8868.jpg
できるだけsed とか、妥協してperlとかの10年 20年先もまず変化しないで移植性高いので書きたいからね。
漢字の連なりだけだからパズルみたいに解けるとは思うんだが、まあ今は仕方ないか。
0912名無しさん@お腹いっぱい。
2013/10/14(月) 04:02:31.62形態素解析というとそれしか知らんが
手軽にセットアップできるから
試してみても良いかもしれん。
0913名無しさん@お腹いっぱい。
2013/10/14(月) 04:06:39.070914名無しさん@お腹いっぱい。
2013/10/14(月) 04:11:23.12茶筅
雌株
好きなの使えよ
0915名無しさん@お腹いっぱい。
2013/10/15(火) 10:24:16.01規制されて書き込めなかったけど、
$ echo そして実行したいrubyのプログラムを実行するシェルスクリプトをpipeのコマンド |nkf -We | kakasi -w | nkf -Ew | sed -e 's/ /\n/g' |grep 行
実行
実行
これでいいの?
0916名無しさん@お腹いっぱい。
2013/10/15(火) 11:46:45.43素晴らしい精度だ。本当に驚いた。
cygwinでkakasi インストールがリポジトリからできないのが悔しいが脅威の精度の高さ。ありがとう。
http://kakasi.namazu.org
ホームページに従ってcygwinにインストールしました感謝。
頻度見るために 最後の方に
|sort|uniq -c|sort|tail
追加で___"↓"___が出力されて期待通り。
92 実行
0917名無しさん@お腹いっぱい。
2013/10/15(火) 13:05:57.54解決してよかったけど、老婆心ながら、
「実行」は検出できるけど、
「実
行」というように検索語の途中に改行が入っていると駄目だから、そこは気をつけてね。
正規表現を工夫するとか、改行を全部取り去って長い1行にするとか、対処が必要。
0918名無しさん@お腹いっぱい。
2013/10/15(火) 19:38:16.78統計処理で最も多い単語
0919v2cの書き込むキーバインド”削除”した。918誤爆しました
2013/10/15(火) 19:49:46.96統計処理で最も多い単語をあぶり出す為だからそれぐらいなら大勢に影響がないから実質大丈夫。
自分が書いたスクリプトより10%ぐらい精度が高いからもう満足。
マシンスペック的にもこの辺がぎりぎりだから精度改良の追加処理は、
5年とか10年後の良いPCの上でだな。
~/ time w3m http://toro.2ch.net/test/read.cgi/unix/1352973453/|Word 行
19 行
86 実行
w3m http://toro.2ch.net/test/read.cgi/unix/1352973453/ 0.11s user 0.20s system 23% cpu 1.305 total
sh ~/sbin/Word.sh 行 0.10s user 0.32s system 32% cpu 1.298 total
~/ time w3m http://toro.2ch.net/test/read.cgi/unix/1352973453/|kWord 行
15 改行
95 実行
w3m http://toro.2ch.net/test/read.cgi/unix/1352973453/ 0.08s user 0.18s system 20% cpu 1.265 total
sh ~/sbin/kWord.sh 行 0.87s user 0.34s system 77% cpu 1.557 total
0920名無しさん@お腹いっぱい。
2013/10/16(水) 07:59:54.710921名無しさん@お腹いっぱい。
2013/10/23(水) 14:54:26.780922名無しさん@お腹いっぱい。
2013/10/23(水) 15:07:30.880923名無しさん@お腹いっぱい。
2013/10/23(水) 16:47:26.97調査の結果、bashでforkする手段は存在しなかった。
0924名無しさん@お腹いっぱい。
2013/10/23(水) 16:48:42.210925名無しさん@お腹いっぱい。
2013/10/23(水) 17:13:35.47悪魔の証明でもさせる気かよ。
反例挙げてみろよ
0926名無しさん@お腹いっぱい。
2013/10/23(水) 17:16:26.300927名無しさん@お腹いっぱい。
2013/10/23(水) 19:03:42.40forkbombって別のプロセスを複数起動しているだけで
現在のシェルを複製してるわけじゃないから。
0928名無しさん@お腹いっぱい。
2013/10/23(水) 21:49:12.28forkの意味が違う?
0929名無しさん@お腹いっぱい。
2013/10/23(水) 22:16:38.55sh $0 "$@"
0930名無しさん@お腹いっぱい。
2013/10/24(木) 09:53:35.62おまえはすでにfork()してる
ていうか何を指してんだ?
fork組み込みコマンドみたいなのをイメージしてるのか?
0931名無しさん@お腹いっぱい。
2013/10/24(木) 10:01:56.12if fork; then
echo Parent
wait
else
echo Child
exit
fi
みたいな
0932名無しさん@お腹いっぱい。
2013/10/24(木) 11:47:25.02そうそうそうそう そういうの
0933名無しさん@お腹いっぱい。
2013/10/24(木) 22:03:40.10同じ事だよ
0934名無しさん@お腹いっぱい。
2013/10/25(金) 13:16:58.33ちがうっつってんだろボケ
0935名無しさん@お腹いっぱい。
2013/10/25(金) 13:30:46.49( ... )
で同じことだと思うが、何か違うか?
0936名無しさん@お腹いっぱい。
2013/10/25(金) 13:33:52.73レス数が900を超えています。1000を超えると表示できなくなるよ。