1 名前:login:Penguin [2007/07/10(火) 23:17:13 ID:qGthZdME] UNIX板のスレを見ている方も多数おられるかと思いますが、 まあそれはそれとして、BASHウゼーとか言われる心配なく 平和にLINUX的スクリプト談義しましょうよ。 初めての自作スクリプト、自信ないから見てください。な初心者から トリッキーな技を駆使した作品を披露したい、蘊蓄を語りたい上級者まで いろいろな人に参加して頂けると嬉しいです。 perlやらPythonやらの話が混ざっても良いんでない? 【sed】シェルスクリプト総合@LINUX Part2【awk】 pc11.2ch.net/test/read.cgi/linux/1154578200/ pc8.2ch.net/test/read.cgi/linux/1121994321/ >>2-5 あたりに色々と。
345 名前:login:Penguin mailto:sage [2007/11/24(土) 22:28:40 ID:bmHXinLt] eval set $LIST func "eee eee" "fff fff" "$@" "ggg ggg"
346 名前:login:Penguin mailto:sage [2007/11/25(日) 17:46:10 ID:ex492j4k] >>345 これだ! こんなトリッキーな手法もあるんですね。 奥が深い。ありがとうございました。
347 名前:login:Penguin mailto:sage [2007/11/25(日) 22:12:54 ID:nNUo7Vyu] >>342 ありがとうございました
348 名前:login:Penguin [2007/11/28(水) 16:44:21 ID:lxwXbk7L] 特定のディレクトリ以下にあるディレクトリ名を検索し そのディレクトリの中にファイルがあった場合のみ変数にディレクトリ名を追加する。 という処理をしたいと考えています。 LIST=`find 特定のディレクトリ -maxdepth 1 -mindepth 1 -type d` 上記のコマンドでディレクトリ一覧は取得できたのですが 取得したディレクトリ一覧の中にファイルがあるかどうかの条件設定方法がわかりません ご教授ください
349 名前:login:Penguin mailto:sage [2007/11/28(水) 16:51:01 ID:hjQ8uHjr] >>348 GNU の find なら ! -empty で。
350 名前:348 mailto:sage [2007/11/28(水) 17:14:26 ID:lxwXbk7L] >>349 レスありがとうございます。 LIST=`find 特定のディレクトリ -maxdepth 1 -mindepth 1 -type d ! -empty` 上記のコマンドで無事に条件を満たすことが出来ました。 感謝です><
351 名前:login:Penguin mailto:sage [2007/11/30(金) 01:52:45 ID:vbHro4B7] 1 A 1 B 1 C 2 P 2 Q 3 X 3 Y 3 Z ... のような入力を 1 A B C 2 P Q 3 X Y Z ... のように整形する簡単な方法はありますか?
352 名前:login:Penguin mailto:sage [2007/11/30(金) 02:21:47 ID:8mp/o88K] awk '{h[$1] = h[$1] " " $2} END { for (key in h) print key h[key] }' < input | sort
353 名前:login:Penguin mailto:sage [2007/11/30(金) 13:45:29 ID:zEAz9Kgp] >>352 惚れた
354 名前:login:Penguin mailto:sage [2007/12/01(土) 01:13:52 ID:285rAG3t] inputをリダイレクトしているのがイヤ。
355 名前:login:Penguin mailto:sage [2007/12/01(土) 01:27:18 ID:aR34EpD+] awkはファイル名を引数に取れるんだな。 パイプでしか使った記憶がなく、素で知らなかった。
356 名前:login:Penguin mailto:sage [2007/12/01(土) 11:59:35 ID:lphCOL1Q] むしろパイプでしか使えないコマンドの名前を パッと挙げろという方がむつかしいだろ
357 名前:login:Penguin mailto:sage [2007/12/01(土) 12:16:31 ID:z08ppphA] オプションの引数という形もない、というものはだいぶ少ないね
358 名前:login:Penguin mailto:sage [2007/12/01(土) 19:59:33 ID:aR34EpD+] とっさに出てきたのは tr
359 名前:login:Penguin mailto:sage [2007/12/01(土) 21:03:16 ID:z08ppphA] MS-DOS 標準添付の SORT (.EXE か .COM か自身がない)
360 名前:login:Penguin mailto:sage [2007/12/01(土) 23:25:16 ID:+jVAJI5Z] MS-DOS 標準添付の MORE
361 名前:login:Penguin [2007/12/03(月) 14:25:58 ID:pB5IpK3Q] 複数のコマンドを実行してログを残したいのですが ( { command1 && command2 } > normal.log ) >& error.log で、標準出力と標準エラーをファイルにリダイレクトまではうまくいきました。 このエラー出力を、画面にも出すにはどんなふうに書くのでしょう? ttp://x68000.q-e-d.net/~68user/unix/pickup?%A5%EA%A5%C0%A5%A4%A5%EC%A5%AF%A5%C8 ちなみに、ここまではこの辺を参考にさせていただきました。 お願いいたします。
362 名前:login:Penguin mailto:sage [2007/12/03(月) 14:26:53 ID:pnpsuBAG] >>361 tee
363 名前:login:Penguin [2007/12/03(月) 15:02:26 ID:pB5IpK3Q] >>362 ありがとうございます できました。 最初に言ってたのとちょっと違うのですが、ようは、すべてログに保存して なおかつERRORの文字が入ってる行だけを画面に出力したかったので 2>&1 | tee file.log | grep ERROR でやりたいことができました。 いろいろ勉強になりました。サンクス。
364 名前:login:Penguin mailto:sage [2007/12/03(月) 16:10:39 ID:+7LXyEUm] コマンドラインとGUIを融合するHotwire opentechpress.jp/developer/article.pl?sid=07/12/03/0133253
365 名前:login:Penguin mailto:sage [2007/12/03(月) 16:33:46 ID:CJjSSdo9] >>364 面白そうだけど、記事の中に具体的な画像が欲しいね・・・・
366 名前:login:Penguin mailto:sage [2007/12/03(月) 16:43:39 ID:pm3xTTNy] >>365 code.google.com/p/hotwire-shell/wiki/Screenshots
367 名前:login:Penguin mailto:sage [2007/12/03(月) 17:31:20 ID:BNt6sl0D] >>366 画像が表示されないのは、送ってくるContent-Typeがおかしいのか。 なんでapplication/octet-streamやねん。
368 名前:login:Penguin [2007/12/04(火) 22:59:48 ID:Bpu7L1AF] ややスレ違いだが、くだ質よりこっちかなと シェルスクリプトの本を買う際に、Linuxユーザーでbashメインで使ってるなら 主旨がbash向けのものを買うべきですか? それともB shell全般向けやsh向けでbashは補完程度の本でも質の高いものを買うべきでしょうか 両シェルの間にそれほど機能、性格の差はなさそうだし
369 名前:login:Penguin mailto:sage [2007/12/04(火) 23:06:21 ID:0gQg9Z1k] bashismって言葉があるくらいで、ついついbashの機能を使ってしまうことは多い。 素のBourne Shellの機能がどこまでなのか書いてある本がいいと思う。
370 名前:login:Penguin mailto:sage [2007/12/04(火) 23:28:47 ID:Bpu7L1AF] >>369 サンクス sh向けでも最近の多くの書籍はbashもカバーしているようですので、その辺りを探してみます
371 名前:login:Penguin mailto:sage [2007/12/05(水) 11:12:29 ID:tDVDuECI] ttp://www.amazon.co.jp/dp/4774122610 そのへん意識するならこれいいかも。 SunOS の bsh と FreeBSD の bsh ( ash ) で違いがある場合についてまで 明記されてる。
372 名前:login:Penguin mailto:sage [2007/12/05(水) 21:59:53 ID:KlliiKVC] >>371 その本と、「UNIXシェルスクリプトコマンドブック 山下 哲典」を最後に候補にしてましたが、後者を買いました。 sh、bash共用でサンプルが多いので。
373 名前:login:Penguin [2007/12/06(木) 18:06:51 ID:ltYfbiEn] いつも複合条件式でまるんですけど #!/bin/bash WAITSEC="" if [ -z "$WAITSEC" -o $WAITSEC -lt 60 ]; then WAITSEC=10 fi を実行すると ./hoge.sh: line 3: [: too many arguments というエラーになります。-oとか-aで記述するifは今まで何回かやったのに 一度もできた記憶が無い!!。結局ifを分けたりして対処してきた負け人生です。 いったい何が悪いというのでしょうか?? 教えていただけますか?
374 名前:login:Penguin mailto:sage [2007/12/06(木) 18:31:24 ID:bgO18Eza] 確かにbashだとなるねぇ。zshだとならんから気づかなかったw #!/bin/bash WAITSEC=$1 if [ -z "$WAITSEC" ] || [ $WAITSEC -lt 60 ]; then WAITSEC=10 fi echo $WAITSEC とりあえずこれで。
375 名前:login:Penguin mailto:sage [2007/12/06(木) 18:35:40 ID:bgO18Eza] と、思ったら出来たw if [ -z "$WAITSEC" -o \( $WAITSEC -lt 60 \) ]; then こういうことだな。 優先順位がおかしいんだ。
376 名前:login:Penguin mailto:sage [2007/12/07(金) 00:20:04 ID:2WlU8Mqa] >>373 -z "$WAITSEC" の成否にかかわらず $WAITSEC -lt 60が実行されちゃってるから問題なんじゃないか? おそらく -z "$WAITSEC"のときは 後ろの条件は 「-lt 60」になるだろうから、>>374 のようにするか${WAITSEC:-0}とかやったらいいんじゃね?
377 名前:login:Penguin mailto:sage [2007/12/07(金) 10:01:03 ID:uKkYmJTB] >WAITSEC="" なので、 >if [ -z "$WAITSEC" -o $WAITSEC -lt 60 ]; then は if [ -z "" -o -lt 60 ]; then と解釈されてエラー。 zsh は sh と違って $WAITSEC は "$WAITSEC" と同じ意味なのでエラーにならない。 "$WAITSEC" -lt 60 と書き換えた場合は、 >-z "$WAITSEC" の成否にかかわらず $WAITSEC -lt 60が実行されちゃってるから問題なんじゃないか? この理由で正しい。
378 名前:login:Penguin mailto:sage [2007/12/11(火) 22:53:04 ID:8t30b6aC] シェルスクリプトにコメントを書くには # comment っていう感じに # を行頭につけてコメントにしますが、自作のシェルスクリプト等に 日本語でコメントを埋め込むのは良くない事なのでしょうか? 英語でコメントを埋め込むべきなのでしょうか? 理由>環境によっては文字化けするかもしれないから その場合、英語では上手くコメントがかけないのですが、、、皆さんはこの辺どうしていますか?
379 名前:login:Penguin mailto:sage [2007/12/11(火) 23:22:06 ID:8VUAk6YG] >>378 英語では上手くコメントがかけない、って、自分が書いた自分用のスクリプトだったら、 べつに、自分にさえ分かればいいんじゃないの?極端な話、ローマ字で書いた日本語でもいいんじゃないかと。
380 名前:login:Penguin mailto:sage [2007/12/11(火) 23:27:45 ID:LcSZkVoI] Shift_JISで書いて2バイト目に ¥ が含まれるとコメントが継続しちまうかな、 と思ったんだが、そうでもないみたいだな。
381 名前:login:Penguin mailto:sage [2007/12/12(水) 08:33:10 ID:itajSrlG] >>379 いやー、他の人にもスクリプトの内容が分かるようにコメント書かないといけない場合はどうすれば? 今はローマ字で書いたりしていますが、さすがに見にくいというか・・・ かといって英語では上手くかけないし・・ C言語やJava等では // 日本語コメント が使えるし MS-DOSの.batファイルでも REM 日本語コメント が使える、Windows Script Hosting(WSH)であっても '日本語コメント が使えて、大抵のスクリプト言語は日本語のコメントが使えるのになぜにLinuxのシェルスクリプト だけこんな事で悩まないといけないんだろうと・・・。 まぁOSが違うから文字コード周りのトラブルなんだろうけど・・。
382 名前:login:Penguin mailto:sage [2007/12/12(水) 09:12:34 ID:fnWAKO+5] 使えるか使えないかっていうなら使えるだろ。 確実に自分しか使わないならShift_JISのようなbrain damagedな文字コードじゃなきゃ 別に何でもいいんじゃない。 しかし使ってよいか使わざるべきかというと、一般にスクリプトって どのロケールで実行されるかわからないよとかの問題が出てくる。 あなたが出した例ではCやJavaのソースファイルはコンパイルするときの 環境が限定できれば問題ないし、DOSのバッチファイルも日本語DOSしか 考えていない。
383 名前:login:Penguin mailto:sage [2007/12/12(水) 11:25:06 ID:ytRjAEEx] >Shift_JISで書いて2バイト目に ▼ が含まれるとコメントが継続しちまうかな、 sjis だろうが何だろうがコメントの継続なんてありません。 >しかし使ってよいか使わざるべきかというと、一般にスクリプトって >どのロケールで実行されるかわからないよとかの問題が出てくる。 コメントにロケールなんて関係ありません。
384 名前:login:Penguin mailto:sage [2007/12/12(水) 11:32:57 ID:11rQvfIz] 英語くらい書けよ。
385 名前:login:Penguin mailto:sage [2007/12/12(水) 12:33:25 ID:5zz/Y7Bm] っつか、どういう環境(=人間環境)だか知らないけど、 そんな雰囲気だと、頑張って英語でコメントを書いても、 肝心の「他の人」が、それを理解出来ない、 ということが容易に想像出来てしまうわけで、 だったらローマ字でいいじゃん、と思う。
386 名前:login:Penguin mailto:sage [2007/12/15(土) 11:57:10 ID:FOfJjZuV] >>383 コメントってのは実行されるときはロケール関係ないけど 元々読むものだから、ロケールばらばらと読みにくくて困るよね って意味だよ。たぶんね。
387 名前:login:Penguin mailto:sage [2007/12/19(水) 22:19:06 ID:qeHYVBDH] #!/bin/bash for i in *.txt で、'*.txt' で展開されるリストの長さに制限はある? ls: argument list too long になる長さでも処理できるようだが、他に何か別の制限はある?
388 名前:login:Penguin [2007/12/20(木) 18:50:14 ID:Qtkk7tpx] sedについての質問です aaa bbb ccc という出力を、sedコマンドで一行にしたいのです。 aaa bbb ccc このように。 どうしたらよいですか。 逆の、sed -e 's/\ /\n/g' はできるのですが。
389 名前:login:Penguin mailto:sage [2007/12/20(木) 21:20:24 ID:1r8qT2Sh] awkなら $ (出力するコマンド) | awk '{printf("%s ", $0)}' でできるんだけどなぁ
390 名前:login:Penguin mailto:sage [2007/12/20(木) 21:47:48 ID:p9kMPhFx] $ cat input aaa bbb ccc $ sed -n 'H;${g;s/¥n/ /g;s/^ //p;}' input なんか無様だ。きっともっとスマートに出来るに違いない。
391 名前:login:Penguin mailto:sage [2007/12/20(木) 21:49:27 ID:p9kMPhFx] もし各行が空白文字を含まないなら、 echo `cat 元テキスト` > 新テキスト でいいな。
392 名前:login:Penguin mailto:sage [2007/12/20(木) 22:14:22 ID:IRXLh3Ok] >>388 sed ':loop; N; s/\n/\ /g ;$!b loop' hoge
393 名前:login:Penguin mailto:sage [2007/12/20(木) 22:19:20 ID:UDgG5/dT] sedにこだわらなければ tr -s '\n' ' ' < input とか
394 名前:login:Penguin mailto:sage [2007/12/20(木) 22:28:20 ID:p9kMPhFx] 目的によっては、 $ fmt input fmtってUNIX標準?
395 名前:login:Penguin mailto:sage [2007/12/20(木) 22:39:06 ID:Qtkk7tpx] >>389-393 こんなにレスが来るとは。 皆さんありがとうございます。 すべて試してすべてで出来ました。 echoとtrはなるほどという感じです。 他は知りませんでした。レベル1アップですね。
396 名前:login:Penguin mailto:sage [2007/12/20(木) 22:43:02 ID:Qtkk7tpx] >>394 更新遅れた。 できました。オプションすらいらないとは。
397 名前:login:Penguin mailto:sage [2008/01/06(日) 19:04:19 ID:tfZRITK8] awkで awk '{print $2,$3}' とすると2,3番目が表示されますが 二番目以降全て表示するにはどうすればいいのでしょうか?
398 名前:login:Penguin mailto:sage [2008/01/06(日) 19:44:21 ID:TN85yzo6] awk 'gsub($1,"")'
399 名前:login:Penguin mailto:sage [2008/01/06(日) 21:41:07 ID:HrtO6pOF] $1に特殊文字が入れられると思わぬ結果になりそうな気がする。
400 名前:login:Penguin mailto:sage [2008/01/06(日) 21:53:19 ID:xjxCtnUs] awk '{for (i=2;i<=NF;i++){printf($i" ")}}'
401 名前:login:Penguin mailto:sage [2008/01/06(日) 22:56:50 ID:HrtO6pOF] フィールド区切が複数のスペースやタブコードでも、1個のスペースに置換されてしまう気がする。 >>397 の「全て」がそこまで求めているかは分からないが。
402 名前:login:Penguin mailto:sage [2008/01/07(月) 00:59:34 ID:Lq+3ioDo] >>401 awk -Fなにか '{for (i=2;i<NF;i++){printf("%s%s", $i, FS)};print $NF}'
403 名前:397 mailto:sage [2008/01/07(月) 02:29:17 ID:SZZlXYY6] ありがとうございます。 最初 >>387 さんと同じことを思ったのですが他に オプションか何かで用意されていると思ってました。 402さんのを使わせていただきます
404 名前:397 mailto:sage [2008/01/07(月) 02:29:58 ID:SZZlXYY6] s/387/398
405 名前:login:Penguin mailto:sage [2008/01/07(月) 17:21:59 ID:CzyB4/IB] >>402 これだと複数の空白が一つになって表示される
406 名前:login:Penguin mailto:sage [2008/01/07(月) 18:30:26 ID:DBTZ8VT2] awk '{gsub($1, "");print substr($0,2)}'
407 名前:login:Penguin mailto:sage [2008/01/07(月) 18:59:30 ID:AGg2gknU] hint: aho,choaho,kusoaho,doaho ∴ awk '{print substr($0,length($1)+2)}'
408 名前:login:Penguin mailto:sage [2008/01/07(月) 20:07:07 ID:81ckgAQ5] 個人的には>>398 をアレンジして、 gawk 'gsub(/^[[:blank:]]*[^[:blank:]]+/,"")' かな。
409 名前:login:Penguin mailto:sage [2008/01/07(月) 20:13:04 ID:DBTZ8VT2] なんだ>>398 で既出だったのね。見落としスマソ。
410 名前:login:Penguin mailto:sage [2008/01/07(月) 23:07:24 ID:6d+dex8H] [file1] bar=234 [file2] foo=123 Bar=987 と2つのkey=valueな内容が入ってるファイルがある。ここで、file1には ないがfile2にはあるkeyのみ(case-insensitiveな比較で、また、valueは 違っていてよい)を拾いkey=valueを出力したいのだけど、一行で書けないかな? どういう出力になってほしいかというと $ myuniq --split-char='=' --field-index=1 --print-unique file1 file2 foo=123 というような実行イメージ。awkで awk -F= '{ line[toupper($1)]=$0; seen[toupper($1)]++; } END { for (key in line) if (seen[key] == 1) print line[key]; }' file1 file2 みたいなのはでっち上げたんだけど、正直汚い。
411 名前:login:Penguin mailto:sage [2008/01/07(月) 23:30:18 ID:6RYIn4eu] 回答じゃなくてすまんのだが、最後にあるワンライナーだと、 2ファイル通して1回しか現れなかったものを表示するから、 「file1にはないがfile2にある」ものだけでなく 「file2にはないがfile1にある」も出てこないか?
412 名前:login:Penguin mailto:sage [2008/01/07(月) 23:35:18 ID:6RYIn4eu] 負けず劣らずかっこ悪いシロモノ for w in `cut -d= -f1 file1 file2 |tr A-Z a-z|sort|uniq -c|sed -n 's/ 1 *//p'`; do grep "^$w=" file2; done
413 名前:login:Penguin mailto:sage [2008/01/07(月) 23:52:40 ID:DBTZ8VT2] grep -v -i "`cut -d= -f1 file1`" file2 重複は無考慮
414 名前:login:Penguin mailto:sage [2008/01/07(月) 23:54:29 ID:6d+dex8H] >>411 あ、すみません。バグです。が、元の仕様が厳しすぎで、 どちらかにしかないエントリを出す でも大丈夫でした。 file1かfile2のどちらかにのみあるkeyに対応するkey=valueを出力する に仕様を訂正させてください。 何をしたいのかというと、Windowsの環境変数を手元のUNIXな環境に 取り込みたいのですが、その際に自分で定義している分については 上書きされないようにしたいのです。 hostA$ env > hostA.env hostB$ env > hostB.env hostB$ myuniq ... hostA.env hostB.env > diff.env hostB$ . ./diff.env みたいなことをしたいと。で、片方の環境が Windows なもので、 case insensitiveな比較とかも必要になってます。 行全体ではなく特定のフィールドのみ見て uniq/diff 処理して出力って 簡単そうで微妙に面倒です。
415 名前:login:Penguin mailto:sage [2008/01/07(月) 23:59:58 ID:6d+dex8H] >>413 おおー。grepのexprに改行入れるとそんな動作になるとは! エレガントです。勉強になりました mOm
416 名前:login:Penguin [2008/01/08(火) 18:35:59 ID:0P1F18Bp] 1行で2つのコマンドを実行するときに 2つ目に実行したコマンドに、1つ目に実行したコマンドの引数を そのまま渡したい場合の記述方法がわからず、困っています。 $ vi hogehoge; echo ?? *??が不明箇所* 上記の例の場合は2つ目に実行しているecho文の出力結果でhogehogeを表示させたいのですが。。 対処方法はないでしょうか? よろしくお願いいたします。
417 名前:login:Penguin mailto:sage [2008/01/08(火) 18:38:30 ID:k6k1za9N] >>416 i="hogehoge"; vi $i; echo $i じゃだめなん?
418 名前:416 mailto:sage [2008/01/08(火) 19:34:39 ID:0P1F18Bp] >>417 ありがとうございます。 その方法があったことに気づきませんでした。 おかげで解決しました、感謝です><
419 名前:login:Penguin mailto:sage [2008/01/08(火) 23:12:30 ID:OqUgF6yk] vi hogehoge; echo !$
420 名前:login:Penguin mailto:sage [2008/01/08(火) 23:26:00 ID:5sg6/WvN] >>419 それタイプしたタイミングではまだ!$は前行のコマンドの。
421 名前:login:Penguin mailto:sage [2008/01/08(火) 23:33:15 ID:A2IkwjEN] 引数が一つだけなら vi hogehoge; echo $_ でもいけるな。
422 名前:login:Penguin [2008/01/10(木) 13:02:51 ID:9dVYtTPe] cshからJavaを呼び出すシェルを作成しています。 その呼び出したJava内部で例外が発生した場合、 以降のシェルの処理を続行させたくありません。 どの様にすればよいのですか? Javaのcatch節でSystem.exit(1);とかで処理を終了させて、 cshでそれを検知する方法があるのかなぁ? と漠然には思うのですが・・・
423 名前:login:Penguin mailto:sage [2008/01/10(木) 19:51:46 ID:qThypT9T] >>422 System.exitが何をするのか分かっているなら、 Javaコマンドの終了値を普通にifなりswitchなりで受けて、csh側からもexitすれば良いだけでは? 単純に例外=即終了と決め打ちなら良いけど、例外によって複数の処理をさせたくなると、 System.exitの終了値を多数用意して管理しなければならなくなって面倒だけどね ここからはポリシーの問題になるけど、System.exit等を使ってコマンドの終了値を利用するよりは、 どんな例外で終了したのかを前もって文字列等でstderrにでも吐き出したり、 終了した例外を表すような長さゼロのテンポラリファイルでも作ってから、Javaコマンドの方を終了させておいて、 csh側からは、むしろその文字列やファイル名を評価させてexitさせるようにした方が、後からデバッグする時とかは楽だよ 更に言えばシェルプログラミングにcshを使うのは止めるべき www.klab.ee.utsunomiya-u.ac.jp/~hiroki/csh-whynot.euc www.klab.ee.utsunomiya-u.ac.jp/~hiroki/sh-perl-tips/
424 名前:login:Penguin mailto:sage [2008/01/10(木) 21:50:31 ID:CJRDs9Ag] Javaのポリシーは知らないが、エラーメッセージと終了コードは二者択一せにゃならんものではない気がする。
425 名前:login:Penguin [2008/01/11(金) 14:14:06 ID:mrGJLB/g] >>423 、424 ありがとうございます。 シェルスクリプト自体、経験が浅い上に今回の要望がcshというのが 決まっているもので・・・ 困っています。。。 2chでの質問自体も初めてなもので・・・ 準正常として扱うような例外は全てJava側で処理をしてプログラムは 正常終了として扱っています。 処理続行不可能と判断した、ランタイム系やIO例外などが発生した場合は 後続のシェルを流したくない。 という状況です。 if $JAVA_CMD then 続き else exit 1 fi 以下処理続く ・・・ ってな感じにしたのですが、どうも上手くJavaでexitした値が取れないです。 文法が間違っているのですかね? もう少し調査してみますが、上記の書き方で間違いがあればご指摘頂きたいです。 後は教えていただいた、テンポラリファイルでの判断も考えてみます。
426 名前:login:Penguin mailto:sage [2008/01/11(金) 15:11:54 ID:GLHvzQDj] findコマンドの結果をツリービュー(treeコマンドの結果的なツリー表示)で出すコマンドまたは方法ってありますか?
427 名前:login:Penguin mailto:sage [2008/01/11(金) 16:08:44 ID:6CIbL1kG] >>425 cshなら $JAVA_CMD if ($? != 0) then echo "failed" exit $? endif echo "OK" でどう?
428 名前:login:Penguin [2008/01/11(金) 16:55:30 ID:mrGJLB/g] >>427 ありがとうございます。 教えていただいた方法で、想定通りの動作になりました。
429 名前:login:Penguin mailto:sage [2008/01/11(金) 21:11:49 ID:OPXAXUzh] >>426 普通にtreeコマンド使うんじゃだめなん?? findで絞った結果を出したいのかなぁ。
430 名前:login:Penguin mailto:sage [2008/01/11(金) 22:17:07 ID:4hqMEkJ5] grep -f find結果 tree結果 とか。 # 本気にしないように。
431 名前:login:Penguin mailto:sage [2008/01/11(金) 23:02:21 ID:aloediIm] 基本的にはtree | grep なんちゃら でいいんじゃね?
432 名前:login:Penguin mailto:sage [2008/01/14(月) 11:50:49 ID:3iR1bkH0] 画像の特定の領域だけを一括でぼかしたいのですが いい方法はありませんか?
433 名前:login:Penguin mailto:sage [2008/01/14(月) 12:00:15 ID:ZjONjaHo] つ netpbm
434 名前:login:Penguin mailto:sage [2008/01/14(月) 12:12:55 ID:6n5zEajJ] つimagemagick
435 名前:login:Penguin mailto:sage [2008/01/14(月) 14:01:26 ID:Or9vH7Fn] メールアドレスの@以降の最後の国を表すCountry Codeの部分だけを抜き出すには どのような正規表現を使えば良いでしょうか? @hotmail.co.jp の.jp の部分を見る感じです。 .jp以外は無視する、という感じです。これで日本のメールしか相手にしない事になりますよね。
436 名前:login:Penguin mailto:sage [2008/01/14(月) 14:04:07 ID:ZjONjaHo] spam避け? 日本からも.comや.netや.orgや.infoや.bizや.acや.tvや.toや(以下略)の アドレスでメールが送られることはあるぞ。
437 名前:login:Penguin mailto:sage [2008/01/14(月) 14:04:25 ID:Or9vH7Fn] $.jp ↑これでいいんでしょうか?正規表現全く知らない状態でネットでちょっと検索してみたのですが・・・
438 名前:login:Penguin mailto:sage [2008/01/14(月) 14:05:05 ID:Or9vH7Fn] あっちゃー、そうなんですか・・・ 海外のメールを相手にしない方法って無いんですかね・・・ 英語でViagraとかうるさいんですよ。
439 名前:login:Penguin mailto:sage [2008/01/14(月) 14:17:08 ID:6n5zEajJ] /[あ-ん]/? ひらがながないメールは無視してもよかろう。
440 名前:login:Penguin mailto:sage [2008/01/14(月) 14:37:34 ID:FCIPzPAY] ヘッダの Content-Type を見て弾くとかどうよ? ^Content-Type: .*iso-2022-jp
441 名前:login:Penguin mailto:sage [2008/01/14(月) 14:42:36 ID:6n5zEajJ] 最近はutf-8なのも多いよ。
442 名前:login:Penguin mailto:sage [2008/01/14(月) 14:54:07 ID:JtG94m55] utf-8 は違法で、危険運転致死罪が適用になるんじゃ?
443 名前:login:Penguin mailto:sage [2008/01/14(月) 22:54:28 ID:RfE0b+o0] >>437 \.jp$ では?
444 名前:login:Penguin mailto:sage [2008/01/16(水) 13:17:12 ID:ZRO/FTzi] テキストファイルを、最後の3行を除いて出力したいのですが 何か良い書き方はないでしょうか。 sed '$d' xxxx | sed '$d' | sed '$d' と書くくらいしか思い付かなくて。
445 名前:login:Penguin mailto:sage [2008/01/16(水) 14:26:14 ID:1obpvu1A] >>444 head -n -3 foobar.txt