1 名前:名無しさん@お腹いっぱい。 [2009/07/01(水) 09:42:48 ] シェルスクリプトの総合スレです。 スクリプトのお勉強・自慢・腕試しなどにどうぞ。 まずは注意点、リンク、地鎮祭など(>>1-6 くらい)をご覧ください。 □お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashなので特に注意。 FreeBSDユーザは/bin/shの正体がashなので注意。 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。 src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sh/ heirloom.sourceforge.net/sh.html ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルスクリプトのことをシェルってゆーな ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも RubyやPerlの方が適した仕事には素直にそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 前スレ シェルスクリプト総合 その14 pc12.2ch.net/test/read.cgi/unix/1233179688/
901 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/28(木) 21:52:49 ] それにしても「正しく受け取れない」は原理的にない。
902 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/28(木) 22:08:06 ] いや、あるから -0 オプションが後から追加されたんですが。
903 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/28(木) 22:08:48 ] って、xargs じゃなくて find の方か。ならないや。ごめん。
904 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/28(木) 22:17:25 ] 結局>>896 は本当なのかどうなのか答えてくれ つまり実際に-exec +だと受けとれないファイルがあるのか それとも単に-exec ;と-exec +を混同してただけなのか それと>>894 の-exec +のほうが良いという根拠は何だ? -print0 | xargs -0じゃいかんのか? このままじゃ気になって寝れやしない
905 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/28(木) 22:42:34 ] >>904 > それと>>894 の-exec +のほうが良いという根拠は何だ? exec +がある環境ならxargsはレガシーコマンド。webで解説する必要は無い。 そもそも、exec +が無い環境がレガシー。 xargsはジジイの胸の奥にしまっておいてくれ。
906 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/28(木) 22:49:15 ] GNU findutilsにxargs付いてくるじゃない
907 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/28(木) 22:51:58 ] ジジイの懐古趣味
908 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/29(金) 01:55:18 ] xargs がいつobsolete になったの? なんか文書ある?
909 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/29(金) 12:12:24 ] -exec + のデメリット コマンドに渡すファイルの数を制御できない(xargs -n) 並列実行できない(xargs -P) -exec + のメリット find でひっかかったファイルが存在しなければコマンドが実行されない (GNU xargs は入力がゼロでもなぜか1回は実行する; xargs -r で抑制可) つーか、 ps ax | awk '/なんか条件/{print $1}' | xargs -r kill みたいに find とは無関係に使う場合も多いから、obsolete のはずがない。
910 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/29(金) 16:58:01 ] findの-execはひとつひとつ実行するから遅いだろ。 grep /dev/null というバッドノウハウもアレだけど。(-h使えって?)
911 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/29(金) 17:01:35 ] >>910 find -exec + の 「+」の意味を理解していない方は発言を御遠慮ください
912 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/30(土) 09:34:03 ] >>910 レガシーちゃんキター
913 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/30(土) 09:38:13 ] MacのTimeMachineのようなことをするスクリプトを教えて
914 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/30(土) 10:01:33 ] pdumpfs Rubyスクリプトだけどな。
915 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/30(土) 20:34:25 ] > -exec utility [argument ...] {} + > Same as -exec, except that ``{}'' is replaced with as many path- > names as possible for each invocation of utility. This behaviour > is similar to that of xargs(1). うおっ。-execに+なんて何時からあったんだ。
916 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/30(土) 20:41:41 ] ttp://www.gnu.org/software/findutils/manual/html_mono/find.html#Multiple-Files GNU findutils 4.2ぐらいからか
917 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/30(土) 21:09:21 ] -exec {} + テンプレに入ってるじゃねえかww
918 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/30(土) 22:00:29 ] ほんとだ。テンプレにあるな。 >findは -exec command {} + を推奨。 >他に -print0、xargsは -0オプションという方法もあるがSolaris非対応) まるで -exec + ならば solaris でも使えるように書いてあるが、 実際は使えなかったような記憶が…
919 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/31(日) 02:34:28 ] >>913 つ wikis.sun.com/display/OpenSolaris/ZFSTimeSlider
920 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/31(日) 20:50:42 ] >>918 docs.sun.com/app/docs/doc/819-1210/find-1?a=view
921 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/31(日) 21:09:07 ] >>920 そのマニュアル、肝心なところを誤訳してるね。 日本語訳マニュアルは信用してはいけない。
922 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/01/31(日) 21:19:36 ] sunでもあるんだな。日本誤訳マニュアル
923 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/02/01(月) 01:46:35 ] 原語は技術者が書いてても 翻訳は非技術者に丸投げだからね
924 名前:名無しさん@お腹いっぱい。 [2010/02/02(火) 23:57:42 ] このスレ参考にファイル数が膨大なディレクトリで paste -d, <(find $i -type f -exec stat -f '%N,%z' {} +) \ <(find $i -type f -exec md5 {} + | sed -E 's/^MD5 \(.*\) = (.*)/\1/') \ > output.txt やったら find: fts_read cannot allocate memory 出ました。Mac OSX なぜ? find のバグ?
925 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/02/03(水) 00:03:47 ] libftsのバグじゃね?