1 名前:名無しさん@お腹いっぱい。 [02/11/03 20:49] パート2ですよ,にーさん
875 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/22 16:06] >>811 > I think Apress are planning to announce its official forthcomingness in December. いまは1月ですが?
876 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/25 22:59] 偉い人教えて。 対話式のシェルで動作させているとき、標準エラー出力だけを常に色つき(例えば赤)で 表示させることって、zsh のようなシェルで出来るの? ぜひうちの zsh でやってみたいんだが。
877 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/26 08:12] >>876 フィルタ書いて常に使うとか。
878 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/26 10:58] >>876 エラーが発生したら色眼鏡をかけるとか。
879 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/26 11:42] モニタに赤セロハン貼っとけ。
880 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/27 02:00] >>877 その、「フィルタ書いて常に使う」っていうのが、 どのように設定すればいいのかイメージできないんですが。 >>879 それじゃ全部エラー出力に見えます。
881 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/27 12:45] 簡単にやるとしたらこんな感じかな。ただ、端末周りを扱うプログラムで支障が あるかもね。 % cat ./tored tored () { local line while read line; do print "\e[31;1m$line\e[0m" done } % source ./tored % perl -e 'printf STDERR "this is stderr.\n"' this is stderr. % perl -e 'printf STDERR "this is stderr.\n"' | tored this is stderr. % perl -e 'printf STDERR "this is stderr.\n"' 2>&1 | tored this is stderr. % exec 2> >(tored) % perl -e 'printf STDERR "this is stderr.\n"' this is stderr. # 色は省略しています
882 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/28 22:34] 876の宿題が…
883 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/31 02:53] 876は納得したのか
884 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/31 14:06] >>883 いや、出来てないです。 すみません、遅くなって。 まだ自分自身の試行錯誤が足りないようです。
885 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/31 15:16] 881に書いてあるやん
886 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/31 15:50] >>885 その >>881 を自分でやってみるという「試行錯誤が足りない」ということ。
887 名前:名無しさん@お腹いっぱい。 [04/01/31 23:35] stdoutの最後に改行がついてないとき、最後の行が消えます。 % echo -n 'foo' % みたいな。 どうすればいいでしょうか?
888 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/31 23:40] dengaku.org/~naoki/zsh/FAQ-J/zshfaq-j.html
889 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/31 23:47] zshの拡張ファイル名生成機能を使って ある文字列を含まない名前を選びだすことって出来ますかね? カレントディレクトリ以下にある物を列挙する場合 echo * hoge huga foo bar その中からhoge hugaだけを除きたい場合(zsh 3.1.xで使えてた方法) echo *^(hoge|huga) なぜか4.x.xではこの方法が使えなくなってしまって こうしても、hoge hugaは除外されずに表示されてしまいます。
890 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 00:03] ~
891 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 01:06] >>890 では駄目なのだよ かといってブラケットで囲むのもだめ 正規表現もだめ なぜか文字列の扱いがダメになってるのでどうしても必要なら perl使え
892 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 01:09] *~*hoge*~*fuga*
893 名前:名無しさん@お腹いっぱい。 mailto:extendedglob [04/02/01 01:14] >>891 info zsh
894 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 01:18] >>892 サンクスコ 逐一入力するのがマンドクサそうなので スクリプト化して使うことにしまつ
895 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 02:09] echo ^*(hoge|huga) じゃないのか
896 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 02:11] あるいは echo *~(hoge|huga)
897 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 02:14] >>895 > echo ^*(hoge|huga) じゃないのか また、新しい、shell を実装してしまった人が出てきたようですね。
898 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 02:48] option の設定によって挙動が違うんじゃないのか
899 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 02:50] 拡張ファイル名生成機能 extended glob と明記されてるから大丈夫 ksh互換モードにしてたらシラネ。 パターンに影響及ぼしそうなオプションは他にないからね。
900 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 02:52] > echo ^*(hoge|huga) これは冗長だった。 echo ^(hoge|huga) でよかった
901 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 03:32] >>900 は文字がよめない もしくは3文字タイプしたら1つ前のレスの内容を忘れる
902 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 04:08] なんだ、この噛み合ってないやりとりは(w
903 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/01 11:10] $ setopt extended_glob $ echo ^h* bar foo $ unsetopt extended_glob $ echo ^h* zsh: no matches found: ^h*
904 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 01:48] <0-5> みたいなグロブって、桁数は関係ないのね。 ちょっとはまった。
905 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 02:23] そういうこともあって、もっぱら{m..n}のファイル生成を使っている
906 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 02:51] ごめん、桁数は関係ないってどういう意味? % touch 1 2 3 4 12 23 45 67 123 345 ~/s % ls <0-5> ~/s 1 2 3 4 % ls <0-15> ~/s 1 12 2 3 4 % ls <0-100> ~/s 1 12 2 23 3 4 45 67 これで期待通りなんだけど。
907 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 02:52] あ、後ろの ~/s は RPROMPT なので無視してください。
908 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 03:02] % touch 001 2 003 4 05 % ls <001-005> # 001 と 003 だけ出てほしい 001 003 05 2 4 こんな感じ
909 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 03:24] >>908 ありが その例では % ls 00<0-5> でいいけどね。 3桁の数字にマッチさせるのはこうかなー % ls <0-9><0-9><0-9> こうでもできた % ls <-><-><->
910 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 04:41] > ls 00<0-5> > ls <0-9><0-9><0-9> > <-><-><-> どれも同じ話だが、既出のように 0004 なんかも含まれてしまうし、 一番下は何桁でもマッチしてしまう。 数字3桁の globbing は [0-9][0-9][0-9] とでもするしかないのでは。
911 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 04:42] > 一番下は 真中もだった
912 名前:909 mailto:sage [04/02/05 05:30] 全然理解してないことがばればれですた。 <0-9>は0から9までにマッチするが 前に0が1個以上ついていた場合それも含める 例えば 1 01 001 0001 <0-9><0-9><0-9>はそれが3個なので 3000040001とかにもマッチしてしまう <-><-><->は3桁以上のすべての数字にマッチ であってるよね?
913 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 22:09] globに、migemo使えたら便利な事もあるかも。 % echo path/to/%M|nihongo|.mp3 みたいな感じで。 # 表記法に関するツッコミは無しでたのむ。
914 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 22:30] それで何とechoされることを期待してるの?
915 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 22:32] path/to/日本語.mp3 じゃない?
916 名前:914 mailto:sage [04/02/05 22:41] あ、globだから、そこにあるファイル名しだいか。 場合によっては path/to/にほんご.mp3 path/to/ニホンゴ.mp3 path/to/日本語.mp3 ね。重そう。
917 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/05 23:23] >>916 そういう関数書いて 内部でperl使って上手い事ごまかせばいけるかも migemoを使って素直にできるかどうかはわからんわ
918 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 09:46] > globに、migemo使えたら便利な事もあるかも。 jetさんのTODOにそれっぽいのはあるね。 ttp://www.gyve.org/~jet/kogiku/
919 名前:名無しさん@お腹いっぱい。 [04/02/08 22:48] 誰かGentoo Linuxのportage用の補完コマンド書いてくれませんか? 自分でやろうとしてもわからないんで。 希望としては emerge net-www/mozilla さらには emerge net-www/mozilla/mozilla-1.4.1.ebuild のように カテゴリ/名前(/バージョン) みたいに出来ると良いです。
920 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/08 23:32] >>918 Gentooスレに行け /usr/share/zsh/site-functions/_portage ついでにこれも読め
921 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/11 20:11] >>919 スレ違いだけど ttp://bugs.gentoo.org/attachment.cgi?action=view&id=22624
922 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/11 20:20] >>921 ガイスツ
923 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/11 20:40] zope.jp/misc/zopeweekend3/ > 近々レポート、写真などを公開する予定です まだー?
924 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/11 20:41] 誤爆すまん
925 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/11 21:14] >>924 ○ ノ|) _| ̄|○ <し ○ <ダメ人間 ノ|) _| ̄|○ <し
926 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/14 21:34] UNIX USER あんまり買う気はしない雑誌だけど、zshの連載があったから気になる。 なんで UNIX USER のDVDは「特集」しか収録してないんじゃ? っと、こんなところで言うことでもないか。
927 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/26 00:26] ls -1 |egrep `echo $1 |migemo -t egrep /usr/share/migemo/migemo-dict` こういうことすると $1 のローマ字に対応する file のリストを migemo で抽出できるんですが、 これをうまく使えば zsh で migemo 補完が可能になると思います。 が、zsh の補完のメカニズムがさっぱりわかりません。 _w3m などいくつか参考にしてみましたが、どうも全体像が理解できませんでした。 僕もこれからいろいろ調べるつもりですが、 どなたか詳しい方、ささっと枠組でも作って下さったりしないでしょうか。
928 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/26 00:57] 死ね
929 名前:927 mailto:sage [04/02/26 02:11] いやあ、面白いアイデアだと思ったんで、 自分で実装できなくても誰かやる人いないかなと思ったんで。 くれくれ君に見えたんならすみません。
930 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/26 12:47] てゆーか何に使いたいの? % ls -1 |egrep `echo $1 |migemo -t egrep /usr/share/migemo/migemo-dict` 使用法: grep [オプション]‥‥ 文字列パターン [ファイル]‥‥ 詳しくは`grep --help'を実行してください。 % となるが
931 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/26 13:15] いや、ファイル名の補完に使いたいのだろう、それは
932 名前:927 mailto:sage [04/02/26 15:35] >>930 $1 の所に何か文字を入れなきゃ駄目です。 例えば % ls -1 あいうえお.sh 愛人.txt aiko.dic aho.max baka.mix というディレクトリでは、ai という文字で補完すると % ls -1 |egrep `echo ai |migemo -t egrep /usr/share/migemo/migemo-dict` あいうえお.sh 愛人.txt aiko.dic こういう結果が出ます。この出力を補完のリストに使えないかということです。 % cat ai(ここで C-i すると) % cat ai あいうえお.sh 愛人.txt aiko.dic こんな風に補完の候補が出るような。 僕個人は日本語ファイル名はほとんど付けないんですが、 単にできたら面白いなと思っただけです。
933 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/26 19:25] あぁ、migemoつきemacsのdiredモードみたいに使いたいわけね
934 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/27 17:40] 927製の zmodload migemo 待ちsage
935 名前:927 mailto:sage [04/02/28 01:00] できなくはなさそうですが、 C-i するたびに補完のリストを動的に作り直す必要があるので、 単純に compadd では駄目みたいです。 compadd 以外のやり方を知らないので、つまってます。 あと補完の候補が複数ある時、 % cat ai あいうえお.sh 愛人.txt aiko.dic こういう出力を期待してましたが、 % cat ai \M-5\M-k\M-N\M-A\M-7\M-W\M-;.sh \M-5\M-k\M-N\M-A\M-7\M-W\M-;.txt aiko.dic こんな風に出てしまう。これは zsh を直さないと無理っぽいです。 >>933 emacs の shell とか eshell とかでならもっと作りやすいかも知れません。 でも自分は shell-mode 使わないからなあ。
936 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/28 02:03] 後者は setopt printeightbit という話じゃないの
937 名前:927 mailto:sage [04/02/28 02:41] おー、すばらしい。
938 名前:927 mailto:sage [04/02/28 02:42] おー、すばらしい。ありがとう。
939 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/28 19:57] うわさの zsh 本はどうなったの?
940 名前:名無しさん@お腹いっぱい。 [04/03/02 03:35] ~/hoge/foo.log ~/hoge/foo.error ~/hoge/foo.today ~/hoge/foo.yesterday というファイルを元に動く bar というコマンドがあって、 $ bar log $ bar error $ bar today $ bar yesterday という風に foo を無くした引数を指定します。この引数を補完させたいのですが 何か良い手はありませんでしょうか? zshの補完機能は便利だけどややこしいですね。
941 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/02 05:24] 至極単純にやるとすれば、こんな感じ。 _bar () { compadd ~/hoge/foo.*(:t:e) } compdef _bar bar
942 名前:940 mailto:sage [04/03/04 04:47] なるほど。ありがとう。 精進します。
943 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/07 03:05] compaddってググっても殆ど情報ないんだが マイナーなのか?
944 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/07 03:15] というかzsh自体、評判の割に日本語の情報が全然ないと思う。 自分が書ければ書くんだけど、compaddとか分からんからなぁ
945 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/07 17:48] UnixUser の連載の記事は、compsys を見通すには、なかなかまとまっていて 丁度良かった。
946 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/09 09:45] a
947 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/19 22:46] pc.2ch.net/test/read.cgi/unix/1075033822/548 > これ以上はzshスレで。 えーと、やりたいこと書きますね。=() は知っていますけど、この場合は使え ませんよね。 #! /usr/local/bin/zsh -f cd /service/smtpd/log/main TODAY=`date -d yesterday +%Y-%m-%d` WORK=(make-temp-file "/tmp/work") grep -h SBL *.s current | tai64nlocal | grep $TODAY > $WORK echo >> $WORK grep -h SBL *.s current | tai64nlocal | grep $TODAY | gawk '{ print $4 }' | sort -nu | dnsfilter >> $WORK for i in `grep -h SBL *.s current | tai64nlocal | grep $TODAY | gawk '{ print $4 }' | sort -nu`; do echo >> $WORK echo % whois $i >> $WORK whois $i >> $WORK done mailsubj "[rblsmtpd] $TODAY" giko@example.com < $WORK rm -f $WORK
948 名前:名無しさん@お腹いっぱい。 [04/03/19 22:50] ついでに、4.2.0 age
949 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/20 00:06] 要は一時ファイルくらいを作ってほしいということなのか。 zsh は関係ないな
950 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/20 01:00] emacs の with-temp-buffer とか便利だよね。 まあ shell では自分でウニクなtmpfile 作る function 作ればいいんじゃないの。
951 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/20 07:27] >>947 > えーと、やりたいこと書きますね。=() は知っていますけど、この場合は使え > ませんよね。 ? 素直に使えるよ? > WORK=(make-temp-file "/tmp/work") ちゃんと理解しているならこうはしないと思うけど。 #!/usr/local/bin/zsh -f WORK==(true) echo WORK=$WORK echo hoge >> $WORK echo moge >> $WORK echo --- cat $WORK echo --- # rm -f $WORK
952 名前:951 mailto:sage [04/03/20 07:35] あと、ふつうはこういうのはパイプでつなげるね。 ( grep ほにゃらら grep はにゃらら てんてんてん ) | mailsubj なんとやら てな具合に。
953 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 01:02] あーん、今さっき、間違えて $HOME 以下をすべて消してしまったよう。 せっかく確認のプロンプトが出たのに、反射的に y 押しちゃった。 深刻な被害は無かったけど、こんな僕のためにも確か、 rm * コマンドを cp * /tmp/trash に変えてくれるようなscript か alias があったはず。 誰かスマートなサンプルを頼む。 出来れば、/tmp/trash/20040321_010023/* とかに cp されるほうが良い。
954 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 01:10] >>953 rmstar?
955 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 01:11] >>953 こんなかんじか? function rm { mkdir -p /tmp/trash`date +%m%d` mv "$*" /tmp/trash`date +%m%d` }
956 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 01:42] >>954 いえ、rmstar すら効かなかった馬鹿者なんです、私。 >>955 なるふぉど、いただきますです。
957 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 01:46] >>956 date の引数適当なので、好みに修正してね
958 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 01:47] cp しても意味ないのでは?
959 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 02:42] >>958 どうした 誤爆か?
960 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 02:46] >>959 あ? 知的障害者か? rm のかわりに、cp じゃ意味ないだろって意味なんだが??
961 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 02:51] 誰もcpしてないじゃん >>955 が適切にmvで書いて それを戴いたと>>956 が言ってんだからそれで終りでいいじゃない。 今更ツッコミ入れる>>960 は陰険
962 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 02:55] >>954 = >>955 = >>957 = >>958 = >>960 ですが何か?
963 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 02:56] >>961 > 誰もcpしてないじゃん >>953 > rm * コマンドを cp * /tmp/trash に変えてくれるようなscript か alias があったはず。 > 出来れば、/tmp/trash/20040321_010023/* とかに cp されるほうが良い。
964 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 02:59] それを真に受けた馬鹿が居なかったんだからそれでいいじゃん って言ってもわからんか。 いつまでも粘着したいのね。 たち悪いなぁ。
965 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 03:04] 結果的に誰もcpしなかったんだから わざわざツッコム必要なかったんでないのってことじゃねーノ
966 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 03:07] >>961 ==>>964 ==>>965 必死だなw
967 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 03:08] 最初に cp って書いた私が悪いんです。 すんませんでした。 では、次の話題へ。
968 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 03:09] >>966 見苦すぃ
969 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 03:12] 陰険な粘着は以後放置の方向でよろしく
970 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 03:19] 最近 bash から zsh に乗り換えたのですが zsh の恩恵が実感できる処理方法を御教え頂けたらと
971 名前:名無しさん@お腹いっぱい。 [04/03/21 03:21] >>969 やはり2chなどクズの巣窟だなw 俺の質問に答えられない歯がゆさから三流の煽りをしなくてもいいぞ お前は世の中に必要とされていない人間だからな。
972 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 03:21] >>970 info zsh
973 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 04:13] そういや、もう春休みだね だから>>971 みたいのが夜中まで頑張ってんだなぁ
974 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/21 04:16] >>971-973 俺はこの3人は同レベルだと思った。
975 名前:974 mailto:sage [04/03/21 04:21] × 同レベル ○ 役立たず すまそ。