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 あたりに色々と。
768 名前:login:Penguin mailto:sage [2008/03/03(月) 23:43:14 ID:Zrc2Vdg0] それはanalogとかでできないものでしょうか(´-`)
769 名前:login:Penguin mailto:sage [2008/03/03(月) 23:46:01 ID:5ghxiELA] >>768 実はそんな気がしてた ありがとう('`)〜♪
770 名前:login:Penguin mailto:sage [2008/03/04(火) 00:34:34 ID:61UoHuE3] ウワー早い 2分ちょいでこれだけ解析できるのかー ああでも肝心なRefererランキングが出てないわ Analogスレは4ヶ月近く誰も居ないみたいだしドウシタモンダカー
771 名前:login:Penguin [2008/03/04(火) 09:48:48 ID:kUaxbjJj] Bashを使ってシェルスクリプトの練習をしています ファイルに特定の文字列が記載されていたら処理を分岐させるというシェルを書きたいと思っているのですがなかなか上手くいってくれません 何かいい方法がありましたら教えていただけないでしょうか やりたい事はファイル内にHTMLという文字列が入っていたらAの処理 入っていなかったらデフォルトの処理をしたいと考えたので 下記のようにしてみました TMP=`cat $YEAR$MONTH$DAY.csv |grep HTML`; echo $TMP case "$TMP" in HTML)echo "HTML file" ;; *) echo "##################" esac
772 名前:login:Penguin mailto:sage [2008/03/04(火) 09:54:01 ID:oWYbuV9h] >>771 if grep HTML "$YEAR$MONTH$DAY.csv" >/dev/null; then echo "HTML file" else echo "##################" fi
773 名前:login:Penguin mailto:sage [2008/03/04(火) 14:33:52 ID:kUaxbjJj] >>772 ありがとうございます 教えていただいた通りにやったら問題なくできました なぜcat|grepのときは上手くできなくて grepの時は問題なくできるのかがちょっと分からないのですが いろいろ調べてみようと思います
774 名前:login:Penguin mailto:sage [2008/03/04(火) 21:04:44 ID:rsD9V5Zj] HTML) を *HTML*) としてみようぜ。
775 名前:login:Penguin mailto:sage [2008/03/04(火) 23:06:20 ID:VrfR3qUe] >>774 やだよ
776 名前:login:Penguin mailto:sage [2008/03/05(水) 00:05:43 ID:EV9xTscM] grep -q を使わないのはポータビリティー重視だから?
777 名前:かね ◆CHAS.7AvVo mailto:sage [2008/03/05(水) 10:22:08 ID:JQ4a1dor BE:411629928-2BP(158)] >>777 ゲット
778 名前:login:Penguin mailto:sage [2008/03/10(月) 18:08:47 ID:qsIz6iXz] 論文を書くときに使うグラフをTopazというソフトを用いて作成しております。 その結果、グラフがepsファイルとして作成されるのですが、Windowsにもってくるとフォント関係でエラーが生じてしまいます。 なのでLinuxでフォントをアウトライン化しようと思い「eps2eps」というコマンド(シェルスクリプト?)を用いて epsファイルのフォントをアウトライン化しました。 しかし、そうするとbounding boxがおかしくなってしまいます。 ですので元のepsをテキストエディタで開き、bounding boxの項目をコピペして対応しています。 それでようやく本題なんですがw 上のような作業を、複数のファイルに対して一括で行いたいのです。 for file in *.eps do eps2eps $file ${file%eps}2 done のようなシェルスクリプトを使えば一括でアウトライン化epsができると思うのですが さらに、インプットファイルをテキストエディタで開きbounding boxの項目をコピー アウトプットファイルにbounding boxの項目を貼り付け というような機能を持たせることはできるのでしょうか?
779 名前:login:Penguin mailto:sage [2008/03/10(月) 19:47:47 ID:PtxOKuxD] ed
780 名前:login:Penguin mailto:sage [2008/03/11(火) 02:26:04 ID:3Mwu+R1S] >>778 スクリプトに慣れた人ならすぐに作れる。
781 名前:login:Penguin mailto:sage [2008/03/12(水) 23:51:51 ID:wAPdko8t] >>780 ?
782 名前:login:Penguin mailto:sage [2008/03/13(木) 22:58:09 ID:A7XLS93G] >>781 !
783 名前:login:Penguin mailto:sage [2008/03/13(木) 23:17:56 ID:SoJCaJfU] ああ、無情
784 名前:login:Penguin mailto:sage [2008/03/14(金) 00:22:41 ID:XhBWUHl1] シログミガンバレ
785 名前:login:Penguin mailto:sage [2008/03/18(火) 03:16:13 ID:TPZ/j5Uw] basenameが第二引数を取ることを今知った。
786 名前:login:Penguin mailto:sage [2008/03/20(木) 22:15:42 ID:N/tKbDY7] echo hoge=1で代入、表示両方できる知った件
787 名前:login:Penguin mailto:sage [2008/03/21(金) 00:14:20 ID:jeNVffRp] >>786 $ echo hoge=1 hoge=1 $ echo x"$hoge"x xx bash 2.05b@debian ではできないぞ。 環境を教えてくれ。
788 名前:login:Penguin mailto:sage [2008/03/21(金) 01:11:50 ID:3ULYcj2H] そんなのできたら困る。
789 名前:login:Penguin [2008/03/21(金) 01:53:30 ID:Mk2nPfge] >>539 >>537 最近はGUIの環境もシェルと呼んだりするらしいしね. >ところで,シェルスクリプトをシェルと略す感覚が信じられない >.せめてスクリプトのほうを残すべきじゃないのか,意味的に… javascriptをjavaって呼ぶ奴おおいし、むきになんなよ ちっせーな、何度も何度も
790 名前:login:Penguin mailto:sage [2008/03/21(金) 03:00:16 ID:tzWxNirH] >>789 javascriptとjavaだって別物じゃねーか まったく別の意味にとられる表現は避けるべきだろ。
791 名前:login:Penguin mailto:sage [2008/03/21(金) 03:26:20 ID:yp4cACqr] javaの開発と言われて行ってみたら、javascriptの案件だった…… 経験者を求めていた筈なので確認をとったら速攻で別案件に回されたけど。 (だれがどこでまちがったのかはしらない。たぶん、えいぎょうのアレがマタやらかしたんだろうけど)
792 名前:login:Penguin mailto:sage [2008/03/21(金) 18:28:30 ID:dmCthI0s] >>789 無能丸出しだな。
793 名前:login:Penguin mailto:sage [2008/03/22(土) 00:13:19 ID:/5OR7tiw] そうだよね、文字の"あ"を"い"って発音してもいいじゃん?
794 名前:login:Penguin mailto:sage [2008/03/22(土) 06:15:29 ID:EkMxwp6R] >>792 頭の構造が粗雑なんだろうね。 しかし無能とは決めつけられないよ。土方としては有能かも知れないじゃないか。
795 名前:login:Penguin mailto:sage [2008/03/22(土) 13:14:51 ID:I+OQFn9y] >>794 井の中の蛙、大海を知らず。
796 名前:login:Penguin mailto:sage [2008/03/22(土) 14:00:07 ID:4xBJlBA7] javascriptをjavaと呼ぶ井戸の外の世界
797 名前:login:Penguin mailto:sage [2008/03/22(土) 14:23:40 ID:79XeAASw] もうすべて「あれ」と「あれ以外の何か」でいいんじゃね? 「この開発にはあれが必要だな」 「そうですね、あれも必要です」 「あれのほうはどうだ」 「あれはあれ以外のあれでやりましょう」 「あれはあれだったからな」 募集要件にはエスパー希望と書けば何も問題ない。
798 名前:login:Penguin mailto:sage [2008/03/22(土) 14:25:08 ID:ldkQa/0V] 残念なことにハードディスクドライブをハードと略すおっさんを結構見かけるのがリアル世の中なのねん。 javascriptをjavaと呼んじゃうおばちゃん、ねーちゃんだってざらにいるよ。 どっちかというと>>789 のほが常識的な気がす
799 名前:login:Penguin mailto:sage [2008/03/22(土) 15:16:06 ID:OrPubXKD] >>789 perlスクリプトをPerlと呼んだりPerlでやると言ったり awkスクリプトをawkと読んだりawkでやると言ったり それと同じでは
800 名前:login:Penguin mailto:sage [2008/03/22(土) 16:27:56 ID:5bvfNtQw] 省略したら同種の別の言葉になるかどうかだな。
801 名前:login:Penguin mailto:sage [2008/03/22(土) 16:38:49 ID:ldkQa/0V] 厳密なことをいえばさ、シェルって単体で言う場合はシェルスクリプトの略じゃないのよね。 (>>537 ,>>539 はこれにつっこんでいる) OSのカーネルに対する、(コマンド)インターフェイス外殻(カーネルの外層を覆う殻の概念)を 現在はCUI/GUIの別を問わずにシェルと呼んでる。このうちGUIの場合はグラフィカルシェルとか CUIの場合はコマンドラインインタプリタとか呼ぶのだけど、このコマンドラインインタプリタを Linuxを含めたUNIX系OSでは単にシェルと呼ぶ慣習がある。昔UNIXにはGUIなんて無かったらね、 シェルといったらコマンドラインインタプリタのことだ、ということに定着していたわけね。 いわゆるsh, bash, csh, tcshのshがシェルだ罠。 シェルスクリプトの略がシェルじゃなくて、シェルで動くスクリプトがシェルスクリプトなの。 順番が逆なのよ。 awk/perlもawk(言語)/perl(言語)のスクリプトがawk/perlスクリプトなのであって awk/perlスクリプトの略がawk/perlなんじゃないよ。 まぁどうでもいいけどな。 以上を踏まえてあえて言えば たしかにシェルとシェルスクリプトは別物だしjavaとjavascripは別物だし、 細かいこと言えばGUIだってグラフィカルシェルなのだ(>>539 )が あんま細かいことをいうとバカみたいだ。つーか狭量に見える。 というわけで>>789 のほが同意できる。聞き上手って言葉があるじゃない?
802 名前:login:Penguin mailto:sage [2008/03/22(土) 17:33:00 ID:/5OR7tiw] でだ、>>539 がシェルスクリプトをシェルと略さずにせめてスクリプトと略しゃ いいだけじゃねーかと建設的な提案をしたのに、他の軽量プログラミング言語 までもちだし、略した言葉を受け取った人間の能力の問題じゃね? となるこのスレの流れに、思わず小岩井ミルクコーヒーを噴いた。 >>791 の様に読解および対話能力が備わってないと、悲惨な状況のド真中に パラシュート降下させられる奴がわんさかでそうだ。単語の略し方の問題で。
803 名前:login:Penguin mailto:sage [2008/03/22(土) 18:27:12 ID:g5kThUF3] >たしかにシェルとシェルスクリプトは別物だしjavaとjavascripは別物だし、 >>800 の言う通り、 シェル・スクリプトをシェルと呼んでも文脈から意味は通じるが、 javascriptをjavaと呼んでしまうと別のものを指してしまう。 混同するな。
804 名前:login:Penguin mailto:sage [2008/03/22(土) 19:12:09 ID://sUM775] WikipediaをWiKiとかね。
805 名前:login:Penguin mailto:sage [2008/03/22(土) 19:20:26 ID:ldkQa/0V] では、世の間違いをどこまでも正していってくれ。 思い浮かべて欲しい世の人々は道の傍らでJavaとJavascriptの違いを 切々と説く君たちに聖者が来れり、天国は来れりと歓喜することであろう。 が、まぁ少なくとも営業の彼と経理の彼女、はす向かいの鈴木さんに 今後一切飲みに誘われなくなるのは間違いと思うけどね。
806 名前:login:Penguin mailto:sage [2008/03/22(土) 19:26:48 ID://sUM775] >>805 は啓蒙活動を自粛するようです。
807 名前:login:Penguin mailto:sage [2008/03/22(土) 19:39:22 ID:pZoAGsoS] モヒカン族と村人ですから
808 名前:login:Penguin mailto:sage [2008/03/22(土) 19:39:41 ID:d90KTFFK] >>805 さっさと氏ね
809 名前:login:Penguin mailto:sage [2008/03/22(土) 20:07:27 ID:/5OR7tiw] >>805 AとBは異なるという説明し、その異なりを無視して同一のもととして扱うと 余計なコストが発生するから、次からはきちんと区別してくれという依頼が 出来ない風土、もしくは、意思決定にかかわる情報を扱うやつが説明しても、 その異なりを理解できないなら、そんな会社つぶれるだろ常考。 また、痛いレスみてJavaとJavascriptも区別して話す新入りが入ってきたら、 それこそ大迷惑だ。 >>791 のえいぎょうのアレは赤っ恥ですめばいいけど。発注元からみると、 大丈夫かこの営業さんと思ったに違いない。 という燃料を補給してみた。
810 名前:login:Penguin mailto:sage [2008/03/22(土) 20:29:32 ID:ldkQa/0V] まぁ派遣は大変だよな。ガンガレ。
811 名前:login:Penguin mailto:sage [2008/03/22(土) 21:23:56 ID:I+OQFn9y] >>797 つまり春奈と偽春奈で仕事をすると。
812 名前:login:Penguin mailto:sage [2008/03/22(土) 21:25:26 ID:ldkQa/0V] >>810 だが、今見たら言い方が悪かった。なんだか煽っているようにもとれるかもな。 すまんかった。そういう意味じゃなくて、今時、派遣ぽい職場の人は技術職まで そんな感じになってきて大変だと思う。漏れにも似たような経験あるからさ、 マジ、ガンがって欲しいと思ってる。 言われたのと行った先で条件が違うなんてのはちょくちょくあって アホな会社にも言えなくて当人が泣きをみてしまうつーのは辛いよな。 やる気ならなんとかユニオンとかそっちに話をもってくしかないわけだが 自分の身を守るのが第一かと思うよ。 まぁここでそんなこと言っててもしょうがないわけで、そういう言い方になった。
813 名前:login:Penguin mailto:sage [2008/03/24(月) 00:53:04 ID:W0JgcRQd] 教えて先生。つーか、自分がやった時に苦労したんだけど、 プロな人はもっと簡単な方法を知ってるんじゃないかな的なお題。 ひょっとして歴代のスレで既出の可能性ありだけど許して。 ディレクトリに お宝画像(1).jpg お宝画像(2).jpg .... お宝画像(100072).jpg お宝画像(100073).jpg が入っている。ファイル名はutf8の日本語、連番はカッコ付きで 連番途中に欠番がある可能性がある。これらのファイルをすべて ero-pic000001.jpg ero-pic000002.jpg .... ero-pic100072.jpg ero-pic100073.jpg という風にリネームしたい。どうしたらいいでしょう?
814 名前:login:Penguin mailto:sage [2008/03/24(月) 01:03:25 ID:zratqhRJ] プログラミングの基礎を学べば余裕でできると思うよ
815 名前:login:Penguin mailto:sage [2008/03/24(月) 01:09:16 ID:1V6v3lmW] 実は漏れは結局Cでやったんだけどね。シェルで簡単にやるにはどうするの?
816 名前:login:Penguin mailto:sage [2008/03/24(月) 01:11:56 ID:BAIAfq4T] rename や mmv を使うかな。
817 名前:login:Penguin mailto:sage [2008/03/24(月) 01:16:04 ID:eiDHSNtl] perl版renameで rename '/\d+/ and $_=sprintf(q{ero-pic%06d.jpg}, $&);' お宝画像*.jpg とか?
818 名前:login:Penguin mailto:sage [2008/03/24(月) 01:23:02 ID:RkCnK2Rz] ls > file_list.txt して中身を mv "お宝画像(1).jpg" "ero-pic00001.jpg" とかに変えて sh file_list.txt するかな
819 名前:login:Penguin mailto:sage [2008/03/24(月) 02:17:54 ID:QVIn50Y1] >>816 mmvというのは? うちにはないみたいだけど。 >>817 perl版renameというのは普通のrenameとは違いますよね?多分。 >>818 基本的にはその方法を用いましたが、 > mv "お宝画像(1).jpg" "ero-pic00001.jpg" とかに変えて ここがエディタでも番号を取り出す文字列操作を伴うマクロかなにかを使う必要があるわけです。 10000行以上あるので手動では無理ですし。私はCでやりましたが。 やっぱそもそも結構めんどくさいことだったんですかね。 なんか簡単そうな感じはするんだけど。
820 名前:login:Penguin mailto:sage [2008/03/24(月) 02:39:44 ID:sKYr6YWg] Perl版renameといえばラクダ本に載っている正規表現でリネームパターンを 指定できるスクリプト(使い方は>>817 )のこと。
821 名前:login:Penguin mailto:sage [2008/03/24(月) 02:44:18 ID:xdVA6Pwk] >>820 導入するには?
822 名前:login:Penguin mailto:sage [2008/03/24(月) 02:50:59 ID:RkCnK2Rz] >>819 でも、正規表現使ったら5回くらいの置換でいけるから、 それでやっちゃうなぁ。俺だったら vi で :%s/.*\(.[0-9]\).*/ero-pic0000\1.jpg/gc :%s/.*\(.[0-9]{2}\).*/ero-pic000\1.jpg/gc みたいな感じで 自信ないけど
823 名前:login:Penguin mailto:sage [2008/03/24(月) 02:56:32 ID:NZTM56J5] >>822 > :%s/.*\(.[0-9]{2}\).*/ero-pic000\1.jpg/gc これダメっぽいような? あと「お宝動画」は例えばの例でどうかわかんないけど 日本語大丈夫かしら?
824 名前:login:Penguin mailto:sage [2008/03/24(月) 02:57:54 ID:BAIAfq4T] perl-rename のGTK版見付けた。 gprename しかしprel-renameみつからない・・・
825 名前:login:Penguin mailto:sage [2008/03/24(月) 03:00:27 ID:BAIAfq4T] って ubuntu のrenameはprenameだった。
826 名前:login:Penguin mailto:sage [2008/03/24(月) 03:07:10 ID:NZTM56J5] >>824 さんきゅ。これ? https://sourceforge.net/project/showfiles.php?group_id=40094&package_id=32230 あとひょっとしてPerl版renameって $ perl -e '{ rename "old-filename", "new-filename";}' みたいな話なのだろうか?(↑はちゃんと動くようだけど)
827 名前:login:Penguin mailto:sage [2008/03/24(月) 03:08:54 ID:eiDHSNtl] debianのperlのパッケージに標準で含まれてるのよ
828 名前:login:Penguin mailto:sage [2008/03/24(月) 03:17:40 ID:/I27eUR4] 今思いついたのだが、ひょっとしてスクリプトで #!/usr/bin/perl rename old-filename, new-filename; みたいな話とか?なるほどそれならいけそだけど。
829 名前:login:Penguin mailto:sage [2008/03/24(月) 03:20:03 ID:sKYr6YWg] Perl版renameはこんな感じのスクリプト $op = shift; foreach (@ARGV) { $was = $_; eval $op; die $@ if $@; rename($was, $_) unless $was eq $_; }
830 名前:login:Penguin mailto:sage [2008/03/24(月) 04:12:10 ID:dtyI9N0m] >>813 あえてシェルスクリプトで書くのならこんな感じかな。 #! /bin/bash for file in "$@" ; do num=${file#*(} num=$( printf '%06d' "${num%)*}" ) mv "$file" "ero-pic${num}.jpg" done bashism が嫌いなら sed に置き換えれば /bin/sh でも動くんじゃないかな
831 名前:login:Penguin mailto:sage [2008/03/24(月) 06:30:29 ID:bi7lOxG6] zshだが許せ。 for n in {1..100073}; mv お宝画像($n).jpg ero-pic`printf %06d $n`.jpg
832 名前:login:Penguin mailto:sage [2008/03/24(月) 10:57:24 ID:62iD1Dht] >>817 >>820 >>827 >>829 >>826 =>>828 だけど、ええとそれってシェルスクリプトで使えるの? /usr/bin/rename が置き換えられているとか? どうなっているんだろう。 >>830 うちでは動かないようだ。 日本語が混じるとためかな。あとかっことか。 で結局こうやったのだけど。 $ls | sed s/.*\(//g | sed s/\).*//g | awk '{printf("mv \"お宝動画(%d).jpg\" \"ero-pic%06d.jpg\"\n",$1,$1)}' | sh 前やったときはawkの代わりにcのプログラムでやってた。まぁawkでも同じか。
833 名前:login:Penguin mailto:sage [2008/03/24(月) 10:57:58 ID:62iD1Dht] >>831 zshって便利そうだね。
834 名前:login:Penguin mailto:sage [2008/03/24(月) 22:35:08 ID:7MP5JU0g] >>813 いろんなやり方があるけど、スクリプト内でいきなりmvなりrenameして 失敗すると悲劇なので、 mv "旧いお宝画像1.jpg" "新しいお宝画像1.jpg" mv "旧いお宝画像2.jpg" "新しいお宝画像2.jpg" mv "旧いお宝画像3.jpg" "新しいお宝画像3.jpg" mv "旧いお宝画像4.jpg" "新しいお宝画像4.jpg" mv "旧いお宝画像5.jpg" "新しいお宝画像5.jpg" mv "旧いお宝画像6.jpg" "新しいお宝画像6.jpg" (以下略) みたいに一旦テキストに落として、それざっと眺めてからshで流しなおしたほうが良いよ。 以前、 mv "旧いお宝画像1.jpg" "新しいお宝画像1.jpg" mv "旧いお宝画像2.jpg" "新しいお宝画像1.jpg" mv "旧いお宝画像3.jpg" "新しいお宝画像1.jpg" mv "旧いお宝画像4.jpg" "新しいお宝画像1.jpg" mv "旧いお宝画像5.jpg" "新しいお宝画像1.jpg" mv "旧いお宝画像6.jpg" "新しいお宝画像1.jpg" (中略) mv "旧いお宝画像1000.jpg" "新しいお宝画像1.jpg" ってやっちゃった(´・ω・`)
835 名前:login:Penguin mailto:sage [2008/03/24(月) 23:31:47 ID:If29/JKD] >>798 なんて頭の悪い…
836 名前:login:Penguin mailto:sage [2008/03/24(月) 23:35:42 ID:If29/JKD] >>819 > perl版renameというのは普通のrenameとは違いますよね?多分。 renameがperl版renameじゃないUNIX類って具体的には何があります? UNIX類じゃないけど、VMSはそうでした。
837 名前:login:Penguin mailto:sage [2008/03/25(火) 00:24:28 ID:FMsixLid] >>832 > 日本語が混じるとためかな。あとかっことか。 括弧の方だな。すまん。クォートするなりしてやってくれ。
838 名前:login:Penguin mailto:sage [2008/03/25(火) 00:44:35 ID:Mm1m5DLO] >>836 $ whereis rename rename: /usr/bin/rename $ less /usr/bin/rename "/usr/bin/rename" may be a binary file. See it anyway? 多分debianが変わり者では?
839 名前:login:Penguin mailto:sage [2008/03/25(火) 00:50:23 ID:6V9ksjI9] >>836 util-linux に入ってるよ。
840 名前:login:Penguin mailto:sage [2008/03/25(火) 00:56:57 ID:ukA1etix] そういやDebianはprenameとかいう名前になってんだっけね? 古典的なLinuxはこのrenameなのかな。 /* * rename.c - aeb 2000-01-01 * -------------------------------------------------------------- #!/bin/sh if [ $# -le 2 ]; then echo call: rename from to files; exit; fi FROM="$1" TO="$2" shift shift for i in $@; do N=`echo "$i" | sed "s/$FROM/$TO/g"`; mv "$i" "$N"; done -------------------------------------------------------------- * This shell script will do renames of files, but may fail * in cases involving special characters. Here a C version. */
841 名前:login:Penguin mailto:sage [2008/03/25(火) 01:44:34 ID:Mm1m5DLO] >>840 古典的なLinuxというより一般的な普通のLinuxはそうだろうな。 Here C Version.のほうな。 d.hatena.ne.jp/takunama/20061123/rename d.hatena.ne.jp/moriyoshi/searchdiary?word=*%5Bdebian%5D debianのrenameは/usr/bin/prenameへのリンクで prenameは Debian のパッケージメンテナが独自にパッケージ生成時に追加したスクリプト つーのが真相らしい。perl版renameはdebianの方言つーことだわな。困ったもんだね。
842 名前:login:Penguin mailto:sage [2008/03/25(火) 01:51:01 ID:uIxNik7B] それ自身はポータブルなPerlスクリプトだから もし使いたかったら$HOME/binあたりに突っ込めばいいんじゃない
843 名前:login:Penguin mailto:sage [2008/03/25(火) 02:00:22 ID:+i6zdHek] >>813 ls -1 ero_dir | sort | ruby -nle 'printf "mv " + $_ + " " + $_.sub("お宝画像\(", "ero-pic").delete("\)")' | sh
844 名前:login:Penguin mailto:sage [2008/03/25(火) 02:03:33 ID:+i6zdHek] 訂正orz ls -1 ero_dir | ruby -nle 'print "mv " + $_ + " " + $_.sub("お宝画像\(", "ero-pic").delete("\)")' | sh
845 名前:login:Penguin mailto:sage [2008/03/25(火) 02:05:27 ID:6V9ksjI9] >>841 > prenameは Debian のパッケージメンテナが独自にパッケージ生成時に追加したスクリプト ↓だってさ。 # This script was developed by Robin Barker (Robin.Barker@npl.co.uk), # from Larry Wall's original script eg/rename from the perl source.
846 名前:login:Penguin mailto:sage [2008/03/25(火) 03:45:05 ID:mfggD9uB] ラクダ本のだってのはだいぶ上の方で言及されとるがな。
847 名前:login:Penguin mailto:sage [2008/03/25(火) 06:52:15 ID:Mm1m5DLO] >>845 prenameは Debian のパッケージメンテナが独自に 「the perl source(perlのオルジナルセット、いわゆるラクダ本)」から パッケージ生成時に追加したスクリプト、つーことですね。 /usr/bin/renameがC版の代わりにこれで置き換えて拡張してあるのが debianの方言ということで。 実はラクダ本のやつは見たことがあるな。
848 名前:login:Penguin mailto:sage [2008/03/25(火) 17:01:59 ID:7L4Qk+Sn] ・>>840 にある元のシェルスクリプトはsed版正規表現を理解する ・Here a C versionは正規表現を全く理解しない ・perl版はperl版正規表現を理解する というわけでLinuxでも三種類あるんですね。
849 名前:login:Penguin mailto:sage [2008/03/25(火) 17:59:25 ID:Mm1m5DLO] こういう微妙な違いってひょっとするとトリごとに結構あるのかもしれないね。 スレからはずれるけど、apache/httpdのコンフィグがバージョン系列は 一緒なのにDebian系(ubuntuも)とRH系(RedHat/Fedora/CentOS)で まるっきり違ってて面くらったことがある。
850 名前:login:Penguin mailto:sage [2008/03/25(火) 18:02:21 ID:IQ4Jbr/0] コマンドなんかもちょっと違うくらいだから、設定ファイルの書き方なんて違っていて当たり前。
851 名前:login:Penguin mailto:sage [2008/03/26(水) 21:17:50 ID:B6BxqxUi] ツリー表示について find / -type d|sort|sed -ne'1b;s/[^\/]*\//┗━━/g;s/┗━━┗━━/┃ ┗━━/g; s/┗━━┗━━/┃ ┗━━/g; s/┗━━┃/┃ ┃/g;p' これだと下記のような表示になるのですが ┗━━proc ┃ ┗━━1 ┃ ┃ ┗━━attr ┃ ┃ ┗━━fd ┃ ┃ ┗━━task ┃ ┃ ┃ ┗━━1 ┃ ┃ ┃ ┃ ┗━━attr ┃ ┃ ┃ ┃ ┗━━fd ┃ ┗━━1106 ┃ ┃ ┗━━attr 不要な線を無くして見栄えを良くしたいのですが、何か良い方法はありませんでしょうか ┗━━proc ┃ ┗━━1 ┃ ┃ ┗━━attr ┃ ┃ ┗━━fd ┃ ┃ ┗━━task ┃ ┃ ┗━━1 ┃ ┃ ┗━━attr ┃ ┃ ┗━━fd ┃ ┗━━1106 ┃ ┃ ┗━━attr
852 名前:login:Penguin mailto:sage [2008/03/26(水) 21:52:30 ID:f9ufLLgD] よくわからんけど tree -dA じゃダメなの?
853 名前:851 mailto:sage [2008/03/26(水) 22:04:51 ID:B6BxqxUi] そういうコマンドがあるのは知ってるのですが # which tree /usr/bin/which: no tree 残念なことに入ってないんです。 いろいろ調べまわった結果がこれなんです。 もう少し自分でも調べてきます。
854 名前:login:Penguin mailto:sage [2008/03/26(水) 22:31:33 ID:f9ufLLgD] そうかtreeのないトリもあるのか。
855 名前:login:Penguin mailto:sage [2008/03/26(水) 23:21:22 ID:5Znd97qm] yumとかaptで入れられないっけ?
856 名前:login:Penguin mailto:sage [2008/03/27(木) 00:04:09 ID:ZXE2f6WU] >>853 PATH が通ってないだけとか。locate 辺りで調べてみたら? 他に何かあったっけ>探す方法
857 名前:851 mailto:sage [2008/03/27(木) 00:35:50 ID:yDbPGpUf] なんとか自己解決できました 下記のシェルスクリプトを「/usr/bin/tree」に置いて代用することにしました。 #!/usr/bin/perl use strict; my($top)=$ARGV[0]; if($top eq ""){ $top="."; } print "[$top]\n"; &tree("",<$top/*>); sub tree { my($bar,@dir)=@_; for my $i(0..$#dir){ my($bl1)=($i<$#dir)?"┣":"┗"; my($bl2)=($i<$#dir)?"┃":" "; my(@path)=split(/\//,$dir[$i]); if(-d $dir[$i]){ print "$bar $bl1 [$path[$#path]]\n"; tree("$bar $bl2",<$dir[$i]/*>); }else{ print "$bar $bl1 $path[$#path]\n"; } } } ちょっと中身を理解するのは難しいですけど、使いこなせたらperlも結構便利そうですね。
858 名前:login:Penguin mailto:sage [2008/03/27(木) 01:47:43 ID:nVTK+35Z] >>857 > 下記のシェルスクリプト ちょっとマテ
859 名前:login:Penguin mailto:sage [2008/03/27(木) 04:19:25 ID:LOwKjqa0] どう見てもシェルスクリプトでなくPerlスクリプトだなw ちなみに、鳥は何なの?
860 名前:851 mailto:sage [2008/03/27(木) 19:23:00 ID:yDbPGpUf] あ、確かにperlスクリプトですねw ちなみに鳥はCentOS4.6で、サーバー構築の勉強用で使ってます。 最小構成でインストールしたからtreeコマンドが入って無かったのかもしれないです。
861 名前:login:Penguin mailto:sage [2008/03/27(木) 19:43:49 ID:ysMS9Gn7] 美女の現われるスクリプトを教えて下さい。
862 名前:login:Penguin mailto:sage [2008/03/27(木) 19:56:21 ID:ORW3s1IJ] >>861 emerge beautiful_girl
863 名前:login:Penguin mailto:sage [2008/03/27(木) 23:51:02 ID:QsCLAAyg] >>851-857 pstreeだと思うんだ・・
864 名前:login:Penguin mailto:sage [2008/03/28(金) 00:18:06 ID:jk3nWqNP] >>863 find / だけど?
865 名前:login:Penguin mailto:sage [2008/03/28(金) 00:18:55 ID:deyesKz0] >>864 そだったw
866 名前:789 [2008/03/28(金) 01:42:56 ID:QgSpL7VJ] にやにや もりあがってんじゃねーかw
867 名前:login:Penguin mailto:sage [2008/03/28(金) 01:46:42 ID:deyesKz0] >>866 javascriptをjavaと呼ぶひと、こんばんはw
868 名前:login:Penguin mailto:sage [2008/03/28(金) 14:06:32 ID:Z7X2dF3N] cshで質問です。 下記のように変数をperlに渡したいんですが、変数を認識してくれません。 どうすれば良いですか? set hoge = funi perl -pe 'print $hoge' file