1 名前:名無しさん@お腹いっぱい。 [2008/05/20(火) 20:58:04 ] シェルスクリプトの総合スレです。 スクリプトのお勉強・自慢・腕試しなどにどうぞ。 まずは注意点、リンク、地鎮祭など(>>1-6 くらい)をご覧ください。 □お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashなので特に注意。 ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルスクリプトのことをシェルってゆーな ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも RubyやPerlの方が適した仕事には素直にそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 シェルスクリプト総合 その10 pc11.2ch.net/test/read.cgi/unix/1202725267/
228 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 14:33:44 ] sedは禁止? sed 's/ */,/g'
229 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 14:35:50 ] while read line do set -- $line echo -n $1 shift for i in "$@" do echo -n ,$i done echo done
230 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 14:40:56 ] >>228 ダウト。試してから書き込めよ。
231 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 14:42:08 ] >>230 試したよ。 何で2ch読んでる?
232 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 14:45:44 ] 何をどう試したんだ
233 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 14:47:20 ] >>228 echo 'aaa bbb ccc' | sed 's/ */,/g' ,a,a,a,b,b,b,c,c,c,
234 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 14:48:54 ] $ echo 'aaa bbb ccc' | sed 's/ */,/g' aaa,bbb,ccc
235 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 14:49:14 ] sedなら正解は、 sed 's/[ ][ ]*/,/g' だな。
236 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 14:50:50 ] >>234 をコピペして実行してみろw $ echo 'aaa bbb ccc' | sed 's/ */,/g' ,a,a,a,b,b,b,c,c,c, この問題を避けるには、>>235 が正解。
237 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 15:05:50 ] 「この問題」って、専ブラを使わずに煽る○○がいる問題って意味だな
238 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 15:27:44 ] で、>>226 は納得したのか?
239 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 00:58:06 ] >>235 これの意味がよくわからんのだが・・・ なんでこれでいいの?
240 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 01:19:14 ] [ ] の意味と>>230 がキレた理由はわかるかね?
241 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 01:23:10 ] >>239 解説するのも野暮だが… >>230 ,>>232 はスペースが2個あることに気付かず醜態を晒してしまったわけだが、 >>235 のように書いておけば見落とし確率が下がって嬉しいという記法。
242 名前:239 mailto:sage [2008/06/06(金) 01:37:14 ] >>240 >>241 すまん shなんだけどlinux(fedora8) じゃだめなんかな? sh-3.2$ echo 'aaaaaa bbbbbbb ccc' | sed 's/[][]*/,/g' ,a,a,a,a,a,a, , , , , , , , , , , , , , ,b,b,b,b,b,b,b, , , , , , ,c,c,c, sh-3.2$
243 名前:239 mailto:sage [2008/06/06(金) 01:39:25 ] 自己解決 []じゃなくえ[ ]だったわ あほだおれ
244 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 04:51:10 ] あの夜、俺は初めて彼女とMMXした。 「もうそろそろiiyama? 君のI/ODATAを確かめたいんだ。XT」 MITSUMIあうと、彼女のMECはALBATRONとしていた。 緊張した俺は焦り彼女のソケット478をAOpenしようとした。 「ちょ、ちょっとRADEON!何をSis」もう俺は既にエレコム。 Sound Blasterのホックを外すとはちきれそうなPioneerがBarracuda でもBIOSTARは意外と玄人志向だった。 「恥ずかしいわ。あまりミネベア・・・」 SCSIをTORICAるとKEIANをSOLTEKした痕がアルファデータ。 あそこはSUPERMICROだった。OMEGAドライバも少し鼻についた。 しかし、彼女のCREATIVEを刺激しつつ俺のセレロンを 彼女のSerial-ATAからASUSに這わせると、「FireWire〜ン」 「もう、ATI」「COREGA欲しいんだろ?」「早くリテール」 俺は激しくTSUKUMO。「インテルはいってるっ!IEEE!1394!」 「あぁ・・・もうDell!」
245 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 06:19:56 ] OFSのあるawkなら、 awk 'BEGIN { OFS=","} { $1 = $1; print $0 }'
246 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 06:32:12 ] >>241 見落としたのじゃなくて、本当に(HTML解釈上で)複数のスペースが 1個のスペースで表示されてしまうから、「>>228 >>234 をコピペしても動かない」が正解。 >>235 のように書き込めば、コピペしてもちゃんと動く。 醜態を晒したのは >>228 >>234 の方。 ちなみに、宣ブラ使ってもやっぱり >>228 >>234 のスペースはひとつだよ。
247 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 08:07:53 ] ダサい専ブラ
248 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 08:20:28 ] たしかにダサい専ブラだな。
249 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 08:31:46 ] ブラウザ依存も、Bash依存同罪。 ポータビリティ考えて書き込めよ。
250 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 08:41:33 ] いつのまにか落ちてたので、立てました。 zsh その5 pc11.2ch.net/test/read.cgi/unix/1212677877/
251 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 08:45:33 ] sed -r 's/ +/,/g' の方が良くね?
252 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 08:49:28 ] どこのsedだよ
253 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 08:50:10 ] /bin/sed
254 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 08:51:37 ] $ type sed sed is a shell builtin
255 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 09:02:22 ] 大半のシステムで使用できる sed -r を避けて可読性を劣化させる必要は無い。 このスレに巣食っている原理主義者以外は >>251 使うのが正解。
256 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 09:20:12 ] 自分が読めない = 可読性が低い
257 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 10:01:25 ] sed 's/ */,/g' これなら文句はねえよな?
258 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 10:09:26 ] >>257 >>228 と同じじゃん。 文句あるみたいよ。
259 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 10:11:21 ] >>258 >>228 とは違う。こっちはちゃんと を使ってるんだが まだ空白がつながって見えるかな? ナマの空白をつなげたら、HTML仕様的にはくっつくのが当たり前だよ
260 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 11:49:01 ] >>226 tr -s ' ' , でいけないか。
261 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 20:02:12 ] sed 's/ * /,/g'
262 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/07(土) 10:18:23 ] >>254 いいな
263 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/08(日) 02:28:12 ] 結婚を考えていた彼女が処女じゃなかったんです7 1 :最強の負け組み:2008/03/01(土) 05:37:53 ID:YrfLoASe ショックでした。 もしやもしやと思っていたのですが 面と向かって告白された時は目の前が真っ暗になりました。 「処女とかそんなの関係ない!」 そう自分に言い聞かせてきましたが、やはり限界がきてしまい 彼女に別れを告げました。 知り合いに言うと 「は?そんなくっだらない事であんないい子と別れたの? ばっかじゃね?もうあんな子絶対知り合えないぞ?」 とボロかすに言われました。 頭では判っているのに心で理解できないんです。 私自身、もう頭の中がぐちゃぐちゃで訳がわかりません。 彼女を傷つけてしまったのでしょうか? 別れの時、彼女は黙って頷き 「じゃあね」 と笑って去っていきました。 もう私には彼女の気持ちがどうなのか あの微笑がなんだったのか理解できないのです。 やはり私は馬鹿な事をしたのでしょうか?
264 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/08(日) 05:17:54 ] >>263 echo じゃあね : -P exit
265 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 01:04:38 ] ふともも画像が100〜400x810pxくらいのサイズであったとします。 横幅が1440pxを超えないように画像を結合するスクリプトを書きたいのです。 結合する画像の組み合わせは特別に指定しません。 横幅が1440以下でかつなるべく大きければ何でもいいです。 たとえば、画像は40枚とします。 1.jpg 300x810 2.jpg 300x810 3.jpg 300x810 4.jpg 300x810 5.jpg 300x810 6.jpg 300x810 ************** 40.jpg 200x810 だとしたら、1,2,3,4 を結合させて image1.jpg (1200x810px)を作ります。 それ以降も同様なことを繰り返します。 お願いします。
266 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 01:23:06 ] ふともも画像について詳しく
267 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 01:51:05 ] うん、画像のふとももが実際どうなのかによって対処法も違うよね。
268 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 05:26:55 ] おまいら少しは協力してやれよw で、画像の件なんだがね。。。
269 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 10:51:46 ] 画像のサンプルがないことにはどうにもならん。
270 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 11:56:21 ] >>265 いわゆるナップサック問題なので、最適解を求めるのはシェルスクリプトには荷が重い。
271 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 12:23:52 ] >>270 最適解じゃなくていいから、指定サイズ以下に並べられる シェルを書いてうpしてください。
272 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 13:08:20 ] 最適じゃなくていいなら 頭から順にならべて1440を越えたら次に行けばいいだけじゃん。
273 名前:265 mailto:sage [2008/06/09(月) 13:08:54 ] サンプル画像です。 素材に対する文句はいっさい受け付けません。 home2.dip.jp/upload100_download.php?no=28514 mai 最近大量に脚画像つくったのがこれしかなかったので。 >>270 そうですか。 でも、しばらく回答を待ちます。 >>271 脚画像をならべるスクリプトは需要があるようですね。
274 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 14:02:24 ] >>272 2次元だから、最適じゃなくても単純にはいかないだろ。
275 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 22:31:54 ] ここは楽しい モーレツインターネッツ教室でつね ワッフルワッフル
276 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 22:41:50 ] X軸方向に複数画像並べるだけで、Y軸方向には画像は並べない(1枚だけ)という仕様なの?
277 名前:265 mailto:sage [2008/06/09(月) 22:49:54 ] >>276 そうです。
278 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 22:56:48 ] 条件後出し乙。 だったら質問するまでもない簡単な問題じゃん。 アフォらしいから回答するの辞めた。
279 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 23:14:13 ] 便乗質問します。 X座標のドット数も、Y座標のドット数も可変の画像ファイルが複数あります。 これを、引数指定のX/Y座標の画面サイズに収まるように、 なるべく多く、なるべくすき間なく画像を並べるようなシェルを発光してください。 なお、実際の画像結合処理は別コマンドにやらせるので、 入力としては、各画像ファイルのファイル名とX/Yサイズが書かれたテキストファイルの $ cat input.txt 1.jpg 300 200 2.jpg 530 250 3.jpg 410 180 4.jpg 640 480 を入力として、 $ hoge input.txt 1200 1280 とやると、 出力として、 1.jpg 0 0 2.jpg 300 0 3.jpg 0 300 : みたいに、画像を配置するべき座標を画像の左上のオフセットで指定して 出力できればいいです。 最適配置にする必要はありませんが、当たり判定はちゃんとやって、 画像が重ならないようにしてください。
280 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 00:02:57 ] いつからここは エロ画像処理スレッドになったんでしょうか。
281 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 00:04:47 ] しかも画像も貼らずに質問とは。
282 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 01:46:24 ] ImageMagick で一発?
283 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 14:18:30 ] シェルスクリプトでやる意味があるのか分からない。 ってのは禁句でしたかな。
284 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 19:31:40 ] >>283 ぶっちゃけシェルスクリプトの最大の利点は手軽さなので、 わざわざ人に1から10まで聞くという手間をかけてまでシェルスクリプトでやる理由はないな。
285 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 19:42:03 ] 普段からシェルを使い慣れてないならあえて選ぶ意味はないような.
286 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 21:32:49 ] じゃなくて、人に聞いてるんじゃなくて、オマエラに「お題」を出してるんだよ。 シェルで発光する方法を考えて、おおいに盛り上がってくれ。
287 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 21:36:09 ] はい次の質問どぞ
288 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 21:37:08 ] シェルで発光する方法まだーーーー???
289 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 21:46:34 ] >>288 はいよLinuxオンリーだが setleds +num +caps +scroll で発光できる
290 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/12(木) 09:37:20 ] お疲れさまでした。 では、次の課題です。 シェルで発酵する方法について考えましょう。
291 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/12(木) 10:01:50 ] ところで「シェルを発行する」っていうのはなにか決まった言いまわしなのか? 普通はこんな言いかたしないと思うんだけどこのスレではよく見る気がする
292 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/12(木) 10:12:17 ] pc11.2ch.net/test/read.cgi/unix/1202725267/860 のネタからでしょ
293 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/12(木) 10:29:40 ] >>292 それのさらなる元ネタはあるんだろうか
294 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/12(木) 11:15:26 ] >>293 ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%83%81%E5%87%A6%E7%90%86
295 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/12(木) 12:11:11 ] issue とか perse とか英語でも色んな言い方するよねえ
296 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/12(木) 12:17:40 ] >>293 pc11.2ch.net/test/read.cgi/unix/1187130302/312
297 名前:名無しさん@お腹いっぱい。 [2008/06/14(土) 08:48:18 ] 引数指定のディレクトリを頂点として、それ以下のサブディレクトリを含む ディレクトリツリー中のシンボリックリンクを探し、 そのシンボリックリンクそれぞれについて、 冒頭のディレクトリツリー内を指しているか、 それとも、ディレクトリツリーの外を指しているのかを 判断するシェルを発行してください。 なお、シンボリックリンクの先に実際にファイルがない場合もありますが、 実際にファイルがあるかどうかに関係なく、あくまでシンボリックリンクの 内容のPATHだけで判断してください。 (ブロークンリンクだからといって外部と判断してはいけないということ) 以上、お願いします。
298 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 09:03:06 ] 作ったシェルスクリプトを僕のPC上で発行しました どうぞ
299 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 16:32:04 ] ここってさ、人にシェルスクリプト書いてもらうスレだったっけ?
300 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 16:35:34 ] >>299 >>1 >スクリプトのお勉強・自慢・腕試しなどにどうぞ。 だそうなので、腕試しのお題を出しているんじゃない?
301 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 18:40:09 ] できないなら黙ってろの人最近来ないね。
302 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 18:50:22 ] >>298-299 わからないなら黙ってろ。
303 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 19:00:44 ] >>301 召喚士現る。
304 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 19:02:21 ] >>301 君、腕良いね
305 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 19:05:04 ] お題としてはなかなかいいんじゃない? symlink読んでリンク先のフルパスに変換する関数を書くあたりがキモかな。
306 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 19:09:49 ] >>305 わからないなら黙ってろ
307 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 19:48:53 ] $RANDOM って癖があるのは仕様なんすか? 俺の環境でecho $((RANDOM*10/32768))を 出力させ続けると0と8がやたら多いw なんかハードウェアのノイズを拾って数値化してるとか いうのは読んだことあるけど。。。(実装によるとは思うけど) これってもうしょうがないんすかね? 立派なアルゴリズムをもった乱数生成器とまでは いかないものの、そこそこ精度が高い(?)乱数を シェルコマンドで作るってできないすかね??
308 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 20:06:23 ] >>307 >>90
309 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 20:11:25 ] /dev/*はOS依存なので、 メルセンヌツイスターあたりをシェルスクリプトで実装する方向で。
310 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 20:26:02 ] /dev/urandomはOS依存じゃないだろ。
311 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/14(土) 23:12:06 ] >>297 ちょっと考えると簡単なようで、実はすごく難しいんじゃないかと思う。 find(1) + readlink(1) を使って基本的な判定はできる。 んが、ディレクトリへのリンクがあったり、意図的に難解なリンクが 作成されてたりすると非常に厄介じゃね? 具体的には、 ../../../usr/local/../local/etc みたいなのとか。このぐらいなら、 dirname(1) + cd + pwd(1) でまだ何とかなりそう。 じゃあ今度は、 /usr/local -> /var/local という(変な)環境で、 /usr/local/etc/a.conf -> ../etc/b.conf とかなっちゃってると、 /usr/local/etc 内にあるようで実は /var/local/etc にあるということになる。 漏れのオツムじゃ解はよくわかんね。パス正規化ツールみたいなのあると 面白いかもね。
312 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/15(日) 00:44:25 ] シェルを発行だとか純正シェルだとか、 このスレは読んでて正直気恥かしくなる
313 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/15(日) 00:46:06 ] >>312 わからないなら黙ってろ
314 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/15(日) 00:57:49 ] >>312 もしかしてここがネタスレだと分かってなかったのか?
315 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/16(月) 22:34:33 ] まあ叩き台ってことで、こんな感じ? #!/bin/sh base="`readlink -f $1`" find $base -type l -print | while read i do echo "`readlink -f $i` $i" done | grep ^$base
316 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/17(火) 01:43:42 ] なんかシェルでゲーム作りたいんだけど 画面のクリアとかってどうやればいいの?
317 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/17(火) 02:26:15 ] clear
318 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/17(火) 10:07:08 ] realpathは使わないの?
319 名前:名無しさん@お腹いっぱい。 [2008/06/17(火) 10:25:04 ] #!/bin/csh -f set com=$0 if ($#argv < 1 || $#argv > 3) then echo Usage:$com start_line total_lines '[file_name]' exit 1 endif if ($#argv == 2) then set s=$1 set t=$2 tail +$s | head -$t else set s=$1 set t=$2 set f=$3 cat $f | tail +$s | head -$t endif exit 0 echo ------------------ これだとエラーがでます。どなたか改良してください。お願いします。
320 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/17(火) 10:35:51 ] >>319 以降はこちらへ ↓ csh初心者質問コーナー pc11.2ch.net/test/read.cgi/unix/1094041299/
321 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/17(火) 16:55:34 ] >>310 Solaris8 は標準では /dev/u?random はなかったはず。 Sun がパッチを配ってたので事実上あるような扱いだったけど。 Sol7 だとそれもなくて、フリーのデバドラをインストールしてた。
322 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/17(火) 16:58:56 ] すでにEOLですからw
323 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/23(月) 21:24:15 ] カンマ区切りcsvからhogeというカラムとその右4カラムを切り出したい ただしhogeが何カラム目にあるかは不定 というのはちょちょいとできないですか?
324 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/23(月) 21:33:07 ] フルスペックのcsvをシェルスクリプトで扱うのは荷が重い ちょちょいでは無理
325 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/23(月) 21:36:17 ] >>323 こういうことか? ↓ #!/bin/sh IFS=, while read line; do set $line while [ $# -gt 0 ]; do if [ "$1" = hoge ]; then echo "$1","$2","$3","$4","$5" break fi shift done done
326 名前:名無しさん@お腹いっぱい。 [2008/06/23(月) 22:09:52 ] 「,」を含む文字列で発狂するから駄目。
327 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/23(月) 22:53:43 ] ""ん中に改行まで入ることあるしな
328 名前:323 mailto:sage [2008/06/23(月) 22:57:51 ] >>325 おお完璧です どうもありがとうございます。 IFSってawkの変数かと思ってましたけど、shでも同じなんですね sh-3.2$ cat a.csv ,,,,,hoge,,1,11,3,3nd ,,,,,,,,,,,,,,,,,,,,,,,,,,,,hoge,,1,11,3,3nd ,,,,,1,fds,3,hnd ,g b,,,,,,hoge,,1,11,3 a ,,,,,,,,,,hoge,,1,13,d sh-3.2$ cat a.csv | ./kkkk hoge,,1,11,3 hoge,,1,11,3 hoge,,1,11,3 hoge,,1,13,d sh-3.2$