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/
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$
329 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/23(月) 23:00:57 ] 質問者が「おお完璧です」と言った後の >>326-327 が不憫。
330 名前:323 mailto:sage [2008/06/23(月) 23:02:39 ] >>326 >>327 さすがにそんなに意地悪な仕様ではないんで問題なしです。 欲を言うならシェルを作らず手で打てるレベルのものがいいなぁ・・というくらいです。
331 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/24(火) 11:26:40 ] シェルってゆうな。クズ。
332 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/24(火) 11:46:49 ] >>331 よう、久しぶりw 相変わらず怒ってんなあwww
333 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/24(火) 15:07:43 ] ゆうって言うな。クズ。
334 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/24(火) 15:11:50 ] シェルで発酵する方法まだーーーーーーーーーーー??????
335 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/24(火) 15:28:14 ] CPUヒートシンクの上に、藁に包んだ大豆を載せ while :;do :;done
336 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 07:27:59 ] FAN止めないと乾燥するな
337 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 07:35:42 ] 水冷にすればいいんじゃね?
338 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 11:45:53 ] hoge1.txt に日付のテキストが数百行あります。 ---------------------- $ cat hoge1.txt Fri, 16 May 2008 09:39:25 +0900 Sun, 18 May 2008 09:30:21 +0900 Mon, 02 Jun 2008 08:15:45 +0900 ---------------------- フォーマットを下記のように年月日のみに変えて hoge2.txt に書き出すシェルスクリプトを作りたいのです。 ---------------------- 2008.5.16 2008.5.18 2008.6.2 ---------------------- sed や awk を使うのか?ということまではわかってきたのですが、初心者なもので詰まってしまっています。どなたか ご教示お願いいたします。
339 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 11:50:21 ] ここでGNU date でやり方書くやつがでて、 Linux厨乙!的な流れですね、わかります。
340 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 11:51:01 ] GNU dateがあるとして、 while read x; do date --date="$x" '+%Y.%-m.%-d' done < hoge1.txt
341 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 11:51:34 ] Linux厨乙!
342 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:20:32 ] × …hoge2.txt に書き出すシェルスクリプトを作りたいのです。 ○ …hoge2.txt に書き出すシェルを発行したいのです。
343 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:21:46 ] BEGIN{ m["Jan"] = 1 m["Feb"] = 2 ... m["Dec"] = 12 OFS = "." } { print $4, m[$3], $2+0 }
344 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:27:11 ] >>343 それ間違ってるよ。動作確認してから書くこと。
345 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:47:44 ] はて、うちの手元では動いてるけど、環境依存な部分あるかな?
346 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:48:19 ] Mon,
347 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:51:31 ] >>344 うちでも動いてる。 >>346 Mon, は関係ないだろ
348 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:52:40 ] 月の名前と曜日の名前の区別がつかないんですね、わかります
349 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:02:27 ] で、そろそろ純正シェルでの解法を誰かが投稿する時間だな
350 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:08:17 ] >>338 本当に日付は >>338 のフォーマットしかないと限定していいの? だったら >>343 でも動くだろうけど、 中には、 Mon Jun 2 08:15:45 JST 2008 みたいな行もあるという仕様じゃないの? だったら、 (今のところ) >>340 が正解。
351 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:09:45 ] ずいぶん勝手な解釈だな。
352 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:11:05 ] #!/bin/sh month() { case "$1" in May) echo 5;; Jun) echo 6;; esac } cat <<END | Fri, 16 May 2008 09:39:25 +0900 Sun, 18 May 2008 09:30:21 +0900 Mon, 02 Jun 2008 08:15:45 +0900 END while read line do set -- $line echo $4.`month $3`.$2 done
353 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:13:38 ] ああ echo $4.`month $3`.`expr $2 + 0` かな。
354 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:15:05 ] いや、>>344 は、>>343 をシェルで実行しようとしたんじゃないだろうか? どこにも○○○だとは書かれてないから。
355 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:31:19 ] >>350 だったら、4桁数字だったら西暦、 2桁数字だったら日付、 Jan Feb等に一致したら月、 それ以外のフィールドは無視、というように 全フィールドをチェックすればできるな。
356 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 14:22:51 ] 338です。 あっという間にたくさんのレスが。ありがとうございます。 >>340 >>343 >>352 ありがとうございます。 #!/bin/sh の後に書いてやってみていますが、まだうまくいきません。 基本的な書き方がわかっていなさすぎなんでしょうね。 >>350 日付のフォーマットはこれだけ限定です。 過去スレ等、さらに読みに行ってきます。 本当に皆さんありがとう。