シェルスクリプト総合 その5

このエントリーをはてなブックマークに追加
680名無しさん@お腹いっぱい。
カレントディレクトリにある、大文字のファイル名を
すべて小文字のファイル名に直したいのですが、
どういうUNIXを打てばいいでしょうか?
681名無しさん@お腹いっぱい。:2006/03/15(水) 19:03:27
こういうの流行ってるの?
682名無しさん@お腹いっぱい。:2006/03/15(水) 19:11:18
シォル
683名無しさん@お腹いっぱい。:2006/03/15(水) 19:30:44
>>680
宿題は自分で考えろ。
684名無しさん@お腹いっぱい。:2006/03/15(水) 19:38:08
「UNIXを打つ」ってすげぇ表現だな
685名無しさん@お腹いっぱい。:2006/03/15(水) 19:51:03
>>680
OS名を書かないと、答えられる人は誰もいないと思います。
686名無しさん@お腹いっぱい。:2006/03/15(水) 19:52:50
いやむしろどのUNIXにするかってい(ry
687名無しさん@お腹いっぱい。:2006/03/15(水) 20:08:51
シェルスクリブトが長すぎるから、略すバカが出るんだよ
で前スレでこの板公認の略称が決まらなかったっけ?
688名無しさん@お腹いっぱい。:2006/03/15(水) 20:26:18
シェルス にしよう
689名無しさん@お腹いっぱい。:2006/03/15(水) 20:33:44
スクリブトってゆうな。クズ。
690名無しさん@お腹いっぱい。:2006/03/15(水) 20:49:26
「UNIXを打ちながらこう考えた…………
…………とかくにシェルは書きにくい。」
691642:2006/03/15(水) 21:35:03
エレガントじゃ無くてすいませんw
趣味でか触ってないのでいつまで経っても初級者から成長しないんですよね。

で、
sed 's/$/ /g' L1 | tr -d "\n" | sed 's/\([0-9]+\)[^0-9]/\1\n/g'
で★キマリッ★
692名無しさん@お腹いっぱい。:2006/03/15(水) 22:43:25
シェルをあぽーんキーワードにすると、、、、、、、、、
693名無しさん@お腹いっぱい。:2006/03/15(水) 23:04:30
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
シェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェルシェル
694名無しさん@お腹いっぱい。:2006/03/15(水) 23:27:45
あぽーんってゆうな。クズ。
695名無しさん@お腹いっぱい。:2006/03/16(木) 03:04:28
シェ…しぇ…シェ………シェ…
…… … …… ……………… … …… … … …シェ… …
696名無しさん@お腹いっぱい。:2006/03/16(木) 03:15:05
>>692
シェイシェイ
697名無しさん@お腹いっぱい。:2006/03/16(木) 12:52:44
春休み期間中なのにもかかわらず平日に書き込みが減るのは、
馬鹿回答をしているのが馬鹿学生じゃなくて馬鹿社会人だからだろうな。
698名無しさん@お腹いっぱい。:2006/03/16(木) 13:35:34
学生でもなく社会人でもありませんよー。
699名無しさん@お腹いっぱい。:2006/03/16(木) 13:48:35
シェルスクリプトで変数TODAYにyymmddを設定したいのですが、
どうやるのか判りません。

yyyymmddの8桁日付なら`date +%Y%m%d`で設定できるのですが、
yymmddで6桁日付だとどうやるのでしょうか?

awkのsubstrという関数を上手く使えればできそうなのですが、

awkの使い方をいまいち理解できてないので・・・・
申し訳ありませんがよろしくお願いします。
700名無しさん@お腹いっぱい。:2006/03/16(木) 13:53:02
>>699
man strftime
701名無しさん@お腹いっぱい。:2006/03/16(木) 14:07:40
>>699
date +%y%m%d でできるよ。yは小文字。
ただし、%yは2000年問題の関係で推奨されない。

>>700
質問欲嫁。この場合 man strftimeしても解決しないだろ。
702699:2006/03/16(木) 15:08:28
701

ありがとうございました。
できました。
すごく単純なコマンドで出来たんですね(汗)

703名無しさん@お腹いっぱい。:2006/03/16(木) 15:50:11
>ただし、%yは2000年問題の関係で推奨されない。

そんなの用途しだいでしょ。
昔のデータなんか扱わないようなところとか。

>質問欲嫁。この場合 man strftimeしても解決しないだろ。

man date するとたいてい strftime(3) を参照と書いてないか?
704名無しさん@お腹いっぱい。:2006/03/16(木) 15:58:12
>>703
man dateしたなら、すでに %y のことは書いてある。
strftime(3)のことは書かれていなかった。
705名無しさん@お腹いっぱい。:2006/03/16(木) 15:58:44
strftime(3)にでてるじゃん
誰だよ,解決しないとか言ってる奴
706名無しさん@お腹いっぱい。:2006/03/16(木) 16:02:45
>>705
strftimeはC言語の関数。
そっちに載っていたとしても、回答としては不適切。
もっとそのものズバリのman dateがあるのだから。
なんでわざわざ遠い回答するの?
707名無しさん@お腹いっぱい。:2006/03/16(木) 16:03:27
「man hoge」厨は、よく確認せずにカキコするため、回答をハズしやすいの法則。
708名無しさん@お腹いっぱい。:2006/03/16(木) 16:06:31
ごめんdateコマンドだったか
709名無しさん@お腹いっぱい。:2006/03/16(木) 16:07:43
おそらく >>700 は、dateコマンドでも +%y が使えることを知らず、
そういうことがやりたいなら strftime() を使って、
C言語でプログラムを書け、と言いたかったんじゃないかな。
それが、実は date +%y で簡単にできてしまうことがわかり、
突っ込まれたので暴れているわけだ。
710名無しさん@お腹いっぱい。:2006/03/16(木) 16:08:24
>>706
FreeBSD で man date を確認すると
% を使った詳細の書式は載っていない。
man strftime ならたぶんどの OS でも載ってるっしょ。
711名無しさん@お腹いっぱい。:2006/03/16(木) 16:09:06
712700:2006/03/16(木) 16:14:40
>>709
>>703>>705 はおれじゃないよ。
713名無しさん@お腹いっぱい。:2006/03/16(木) 16:14:58
>>710
いきなり man strftimeしても、質問者にとっては、
それがdateで使えるとはわからない。
載っているのはC言語なので、最初の数行読んで「違う」「ガセネタだ」と
思うだろう。

man strftimeとか言わずに、
>>701 みたいに date +%y%m%d と、直接回答するのが
もっとも価値が高い回答ではないだろうか。
714名無しさん@お腹いっぱい。:2006/03/16(木) 16:21:42
この板最近回答者への要求きついね。
回答控えようかな。
715名無しさん@お腹いっぱい。:2006/03/16(木) 16:47:32
FreeBSDでman dateでこれだけ載ってりゃ十分じゃ内科医
--------------------------------
yy 西暦の省略表現です。西暦の 10 の位と 1 の位です (1989 年なら 89、06 なら 2006)。
〜中略〜
使用例
以下のコマンド:
date "+DATE: %Y-%m-%d%nTIME: %H:%M:%S"
は、下のような表示を行ないます。
DATE: 1987-11-21
TIME: 13:36:16
716名無しさん@お腹いっぱい。:2006/03/16(木) 16:52:51
だから今のコンテキストでは、%y が載ってないのはクズ
717名無しさん@お腹いっぱい。:2006/03/16(木) 16:59:42
確認してみたが、SolarisとLinuxのman dateでは %yの他、%の書式解説が載ってるぞ。
遠回しなman書いてるFreeBSDはクズ。
718名無しさん@お腹いっぱい。:2006/03/16(木) 17:01:55
手元の Solaris9 の man にはないようだが……。
719名無しさん@お腹いっぱい。:2006/03/16(木) 17:06:55
date(1)には書式文字列はstrftime(3)に載っているっ
て書いてあるけど。strftime(3)は遠回りでもなんでも
なく、直球だと思う。まぁ、date(1)にstrftime(3)を
見ろと載っていると一言あってもいいけど。

An operand with a leading plus (`+') sign signals a user-defined format
string which specifies the format in which to display the date and time.
The format string may contain any of the conversion specifications
described in the strftime(3) manual page, as well as any arbitrary text.

つーか、質問者以外が難癖つけすぎ。
720名無しさん@お腹いっぱい。:2006/03/16(木) 17:08:10
というか、Solarisの場合manは非標準で、標準はアンサーブックとかに変わったし、
Solarisスレでは二言めには docs.sun.com読め、なので、manは標準じゃないのだろう。
721名無しさん@お腹いっぱい。:2006/03/16(木) 17:10:52
>>719
だからぁ、それはFreeBSDの場合なんだって。
そもそも、dateコマンドで行けるかどうかの情報すらない段階で、
man strftimeでは意味が通じないよ。

元が「dateの書式が知りたい」という質問なら
man strftimeでもわかるけど。

実際にはそうじゃない。
722名無しさん@お腹いっぱい。:2006/03/16(木) 17:21:47
質問者の >>699 は、8桁日付の date +%Y%m%d については知っている。
これを、6桁にしようと、awkのsubstr関数を使うことを考えていた。

この段階で、質問者は「dateコマンドだけではできない」と
考えていたと推定できる。

すると回答としては、まず、「dateだけでできるんだよ」ということを
教えてやらないといけない。

ところが、ここで「man strftime」などと回答すると、
「dateの出力をstrftimeというコマンド(←実際にはない)で加工する」
あるいはawkを考えているため「awkにstrftimeという関数がある?」
などと、誤った方向に誘導してしまう。

だから、manなどで回答するのではなく、

`date +%y%m%d`

と一言いえば済むことだったのだ。
723名無しさん@お腹いっぱい。:2006/03/16(木) 17:33:12
回答者は date でできるのが分かってたんだから、man を良く嫁で良かったんじゃないのか。
直接、答えを教えるのは良くないよ。
724名無しさん@お腹いっぱい。:2006/03/16(木) 17:38:09
manで回答する香具師って、実際に動作確認せずに回答してるだろ。
オレはその点が気になる。
シェルスクリプトとして動作確認してるなら、
回答は直接のコマンドラインになるはず。

直接答を書くというか、動作確認のためにそれは必要なこと。
725名無しさん@お腹いっぱい。:2006/03/16(木) 17:38:45
なんで701はこんなに必死になってるんですか?
726名無しさん@お腹いっぱい。:2006/03/16(木) 17:43:37
>>714
元々モマエは役に立ってないから
イエローで首括って良いよ
727名無しさん@お腹いっぱい。:2006/03/16(木) 17:52:51
>>724
仮に動作確認のために動かしても、マニュアルに載ってることは答えを
直接書くべきじゃない。回答者の学ぶ機会を奪うのか?
728名無しさん@お腹いっぱい。:2006/03/16(木) 17:54:15
>あるいはawkを考えているため「awkにstrftimeという関数がある?」
>などと、誤った方向に誘導してしまう。

GNU awk にはあるよ。その man でもちゃんと strftime(3) に誘導してる。
729名無しさん@お腹いっぱい。:2006/03/16(木) 17:56:39
>>728
awkにstrftimeがあるのは知ってるよ。
だからこそ紛らわしいと言ってるんだ。
dateでできるのにわざわざawkでやると無駄だろ。
しかも、awkのstrftimeでdateみたいに表示させるの、
結構記述量多くなるよ。
730名無しさん@お腹いっぱい。:2006/03/16(木) 18:00:42
余談だけど、
awk 'BEGIN { print strftime("%y%m%d") }'
だね。

確かに、こんなこと書くより、

date +%y%m%d
の方がエレガントだね。
731名無しさん@お腹いっぱい。:2006/03/16(木) 18:06:32
>>727
>回答者の学ぶ機会を奪うのか?

確かに、「回答者」こそいい回答方法を学んで欲しいよねw
man回答は最低。
732680:2006/03/16(木) 21:08:35
すみません。>>680 がまだ解答が付いてないんですが、
よろしければこれをネタに、解答者バトルをお願いします。
733名無しさん@お腹いっぱい。:2006/03/16(木) 21:19:53
こんなUNIXを打ってください
sh -c 'for i in *; do mv $i `echo $i | tr a-z A-Z`; done'
734名無しさん@お腹いっぱい。:2006/03/16(木) 21:24:16
>>733
逆に大文字に変換してるのはわざと?
あと、sh -c が無駄。
cshユーザーは居ないという大前提があるので、
sh -c する必要なし。
735名無しさん@お腹いっぱい。:2006/03/16(木) 21:33:23
>>734
> 逆に大文字に変換してるのはわざと?
素でまちがえただけよ
736名無しさん@お腹いっぱい。:2006/03/16(木) 21:35:48
もっとハデなバトルネタきぼん
737680:2006/03/16(木) 21:41:44
>>733
ありがとうございます。733のUNIXを打つと途中まで行けるんですが、
My Document.txt というファイルがあるところでエラーになります。
こういうファイルも対応できるUNIXの打ち方はありませんか?
738名無しさん@お腹いっぱい。:2006/03/16(木) 21:50:22
「UNIXを打つ」ってすげぇ表現だな
739名無しさん@お腹いっぱい。:2006/03/16(木) 21:53:02
>tr a-z A-Z
あれ?
[]がいるんじゃね?
740名無しさん@お腹いっぱい。:2006/03/16(木) 21:55:12
>>739
man tr
[]はいらねーよ。正規表現じゃないんだから。
741名無しさん@お腹いっぱい。:2006/03/16(木) 21:59:52
もまいら、ちゃんと動作チェックしてから書き込め。
それとも手元のPCがWinで、すぐにUNIXが打てないのかな?
742名無しさん@お腹いっぱい。:2006/03/16(木) 22:13:04
SysVの古いバージョンの tr だと [ ] が要ったらしい。
でも、Solarisの tr でも [ ] なしで動くので
[ ] はもう要らないのだろう。
743名無しさん@お腹いっぱい。:2006/03/16(木) 22:25:26
solaris8のマニュアルだと、
/usr/bin/trの場合は、[]がいるみたいだぞ。
/usr/xpg4/bin/trの場合はいらんみたいだが。
744名無しさん@お腹いっぱい。:2006/03/16(木) 22:35:09
Solaris9の/usr/bin/trだと [ ] なしで動いた。
manはインスコしてないので未確認。
manってうぜー。
現物確認が一番。
745名無しさん@お腹いっぱい。:2006/03/16(木) 23:01:05
manぐらい入れとけよ
746名無しさん@お腹いっぱい。:2006/03/16(木) 23:04:52
Solarisでは、「manは将来のリリースではサポートされない」みたいな記述を
何年か前に見たから、インスコしないことにしている。
LinuxのmanをNFSマウントしてそれを読んでるが、
それでだいたい間に合ってしまうんだよ。
747名無しさん@お腹いっぱい。:2006/03/16(木) 23:20:24
Linuxのmanって、なんか古い記述が残ってたり、テキトーなのが多くないか?
Solarisのmanの方が全然いいぞ
例えばThread-SafeかどうかSolarisのは全部書いてあるし
748名無しさん@お腹いっぱい。:2006/03/16(木) 23:21:34
>>746
聞いたことないなあ。"troff形式のマニュアルページ"もしくは
AnswerBook(もうリリースされてないけど)の間違いじゃないの?

ttp://docs.sun.com/app/docs/doc/819-0305/6n2o826je?a=view
ここにも載ってないし。
749名無しさん@お腹いっぱい。:2006/03/16(木) 23:59:48
>>747
> Linuxのmanって、なんか古い記述が残ってたり、テキトーなのが多くないか?

日本語の man はそういうの多いね。

--help オプションとかがあるコマンドなら
そっちで確認した方が確実だね。
750名無しさん@お腹いっぱい。:2006/03/17(金) 00:33:46
>>749
manも--helpオプションも間違ってて、
ソース読まざるをえないことが数度あった。

bashとかのでかいmanはよみにくいな。
751名無しさん@お腹いっぱい。:2006/03/17(金) 00:37:04
かといって、zshとかperlみたいなのもな
752名無しさん@お腹いっぱい。:2006/03/17(金) 00:43:18
-gつきでコンパイルしてあれば--sourceでソースが表示されるというのを標準にしよう
753名無しさん@お腹いっぱい。:2006/03/17(金) 00:52:25
perl は独自に分割されてていまいちわからん。
ああいうのなら info の方がいい。
754名無しさん@お腹いっぱい。:2006/03/17(金) 01:18:20
オマエら能書きは良いからUNIX打てよ
755名無しさん@お腹いっぱい。:2006/03/17(金) 01:20:07
>>746,747
Solarisのmanは、docs.sun.comと同じソースで、
かなり前からSGMLドキュメントがオリジナルになっている。
アンサーブックの時代にそうなった。

/usr/man/sman*
756名無しさん@お腹いっぱい。:2006/03/17(金) 06:56:13
で、>>737 に対応したUNIXは誰も打てないのかよ?
757名無しさん@お腹いっぱい。:2006/03/17(金) 07:16:05
しょーがねーなあ。少し上の方みりゃ分かると思うんだが。
for i in *; do mv "$i" "`echo "$i" | tr a-z A-Z`"; done
758名無しさん@お腹いっぱい。:2006/03/17(金) 07:18:36
誰か俺の心を揺さぶるようなUNIXを打ってくれ!
759名無しさん@お腹いっぱい。:2006/03/17(金) 07:24:11
UNIXを打ち込んでくれー!!
760名無しさん@お腹いっぱい。:2006/03/17(金) 07:32:58
つーか>>737 は普段windowsをクリックしてるんだろうけど
なんで突然UNIXを打たなきゃなんなかったのか気になる
761名無しさん@お腹いっぱい。:2006/03/17(金) 08:19:02
>>745
Solarisのインストール時に、最小インストールを選択すると manは入らないよ。
サーバー専用機などで Xが不要の場合、
End Userインストールより下には最小インストールしか選択肢がなく、
それを選んで manなしになっているマシンは多い。
762名無しさん@お腹いっぱい。:2006/03/17(金) 08:20:40
manぐらい入れとけよ
763名無しさん@お腹いっぱい。:2006/03/17(金) 08:53:22
manにtinを入れるってか。
764名無しさん@お腹いっぱい。:2006/03/17(金) 09:08:36
10台、100台とあるマシンに、同じmanのコピーをインストールするのは無駄。
しかも、manは実行ファイルでもあるまいし、サーバー専用機の場合、
サーバー機にloginしてmanを読むこと自体無駄。

あ、だからdocs.sun.comなのか。
765名無しさん@お腹いっぱい。:2006/03/17(金) 10:41:41
>>764
NFSでman積めば?
766名無しさん@お腹いっぱい。:2006/03/17(金) 11:05:40
セキュリティの関係でNFSを使えないサーバーもある。
767名無しさん@お腹いっぱい。:2006/03/17(金) 11:09:48
>>766
情報を後出しされてもなぁ
じゃmanサーバ立てて都度読みに行けば?
768名無しさん@お腹いっぱい。:2006/03/17(金) 11:22:58
>>764
けち臭いこというなw
769名無しさん@お腹いっぱい。:2006/03/17(金) 11:45:58
使わない実行ファイルだって山ほど入ってるだろうに
770名無しさん@お腹いっぱい。:2006/03/17(金) 11:55:43
まったくだ。昔のsun3とかの時代ならそりゃもうケチケチ使ってたよ。
find / -type f -atime +365 -exec rm -f {} \;
でも実行しとけ
771名無しさん@お腹いっぱい。:2006/03/17(金) 12:07:54
"Core System Support"で入れて、デフォでは入らない manを、
多数のマシンに pkgadd して回るなんて面倒なことはできない。
デフォで入らなかったというのはそれはそれで意味があるのだろうし、
あえてデフォの状態をいじりたくないというのもある。
772名無しさん@お腹いっぱい。:2006/03/17(金) 12:10:40
なら入れなきゃいいじゃん。
それをシェルスレで主張する意味がわからん。
773名無しさん@お腹いっぱい。:2006/03/17(金) 12:10:48
man co.jp
774名無しさん@お腹いっぱい。:2006/03/17(金) 12:13:17
シェルゆうな
775名無しさん@お腹いっぱい。:2006/03/17(金) 12:30:59

そうだよ、入れなきゃいいんだよ。
オレは入れるなとは主張していない。
「manくらい入れろ」と言ってる >>762 とかに
反論してるだけ。
776名無しさん@お腹いっぱい。:2006/03/17(金) 12:45:43
入れなくてもいいけど、man嫁って言われて切れるなよ
777名無しさん@お腹いっぱい。:2006/03/17(金) 13:01:09
言っとくけど、man入れてないオレは回答者側。
このスレで質問したことは一度もない。
回答は多数。

初心者の質問に、誰かが man嫁と回答してるのを見て、
その直後にもっとずばりの回答をしてるのがオレ。
manなんかで回答するんじゃないぞ。
778名無しさん@お腹いっぱい。:2006/03/17(金) 13:29:25
manぐらい入れとけよ
779名無しさん@お腹いっぱい。:2006/03/17(金) 13:30:42
manはそのマシンに入っているから価値があるんだろ。
780名無しさん@お腹いっぱい。:2006/03/17(金) 13:31:28
質問者はみんな man 入れてるよ。
781名無しさん@お腹いっぱい。:2006/03/17(金) 13:51:05
はやくUNIX書けよ
782名無しさん@お腹いっぱい。:2006/03/17(金) 13:58:49
>>777
> 初心者の質問に、誰かが man嫁と回答してるのを見て、
> その直後にもっとずばりの回答をしてるのがオレ。
質問者が調べる機会を奪っちゃいかんよ。
783名無しさん@お腹いっぱい。:2006/03/17(金) 14:25:41
>>777
でもオマエmanの入れ方解らないで教えてもらったじゃん
784名無しさん@お腹いっぱい。:2006/03/17(金) 16:11:11
僕にもmanの入れ方教えてくださいm(_ _)m
785名無しさん@お腹いっぱい。:2006/03/17(金) 17:15:07
結局manが使えないバカの再教育からUNIX打たないとダメか
786名無しさん@お腹いっぱい。:2006/03/17(金) 21:56:29
>>777
どのようにして、その先入観を打ち破る事が出来るのか。本当に悩ましい
787名無しさん@お腹いっぱい。:2006/03/17(金) 22:14:27
>>786
そのネタもう古い。もっと新しいの頼む。
788名無しさん@お腹いっぱい。:2006/03/17(金) 23:57:09
ずばりの回答か・・・ま、ほんとにずばりならいいが。
789名無しさん@お腹いっぱい。:2006/03/18(土) 00:07:22
ずっぽりの回答
790名無しさん@お腹いっぱい。:2006/03/18(土) 00:18:15
相変わらずレベル低いなw
791名無しさん@お腹いっぱい。:2006/03/18(土) 12:04:50
ここはmanについて考えるスレかよ!
man入れるか入れないかは別として回答としては>>701が一番良いと思うけどな。
>>699の人はある程度調べた後に質問したように見えるし、調べる方向が間違いつつあるようにも見える。
そういう人にはそのものずばりの回答を出せば、その人は自分で man date で回答を確かめる事をすると
思うよ。
792名無しさん@お腹いっぱい。:2006/03/18(土) 12:28:56
>>791
だから?
要するに君はここが相変わらずレベル低いと言いたかったわけだね
793名無しさん@お腹いっぱい。:2006/03/18(土) 13:22:42
>>791
ジサジエも飽きたから何か変わったUNIXを振ってくれよ
794791:2006/03/18(土) 13:35:17
>>793
俺は701では無い。
manも入れてる。
ねたは無い。
795名無しさん@お腹いっぱい。:2006/03/18(土) 13:39:28
十代に若返ってナオンとずっこんばっこんできるスクリプトをお願いします
796名無しさん@お腹いっぱい。:2006/03/18(土) 14:01:41
>>795

#!/bin/sh
if [ $# -lt 1 ]; then
echo 'usage: manco YourAge' 1>&2
exit 1
fi
thisyear=`date +%Y`
year=`expr $thisyear - $1 + 16`
sudo date 01010000$year
echo 'Happy old year!'

man co
797名無しさん@お腹いっぱい。:2006/03/18(土) 14:03:36
動かしていると、自然にディレクトリ中にスクリプトが増えていくのはワームですか。
798名無しさん@お腹いっぱい。:2006/03/18(土) 14:13:13
バグです
799名無しさん@お腹いっぱい。:2006/03/18(土) 14:37:08
>>796
ありがとうございます。
早速実行してみましたが、
53歳だと、dateの実行のところでエラーになって
16歳に戻れません。
53歳以上にも対応したUNIXを打つ方法はありませんか?
800796:2006/03/18(土) 14:44:14
>>799
楽観的な仕様と引数の範囲チェック無しで作成してしまいました。

>>793さん、変わったUNIXが振られましたのでよろしく。
801名無しさん@お腹いっぱい。:2006/03/18(土) 14:47:10
>>794
典型的な自作自演の告白乙
ココではそんなお約束は書かなくてもおk
802名無しさん@お腹いっぱい。:2006/03/18(土) 21:09:36
よしきた、俺にまかせろ!
俺は801では無い。
manは入れてない。
いつもずっぽり。
803名無しさん@お腹いっぱい。:2006/03/18(土) 21:18:06
Sambaで coding system = hex で運用されていたサーバーがあります。
これを、coding system = euc に変更したいので、
hexでエンコードされた「:」入りの日本語ファイル名をすべて
EUCに変換したいのですが、
どういうシェルを書いて、どういうUNIXを打てばいいでしょうか?
804名無しさん@お腹いっぱい。:2006/03/18(土) 22:07:30
書かんでよい。よってスレ違い。
http://www.samba.gr.jp/project/contrib/smbchartool.html
805名無しさん@お腹いっぱい。:2006/03/18(土) 22:23:41
>804
それ、、、以前使ったら、シンボリックリンクも全部おいかけられて、
1つのファイル名を何度も何度もコード変換されて、全部の日本語
ファイルが化け化けになったw
806名無しさん@お腹いっぱい。:2006/03/18(土) 23:07:48
じゃあ、
http://ftp.yz.yamagata-u.ac.jp/pub/network/samba-jp/tool/smbjcode/
のsmbjconv.plで、
find . -type f -exec mv {} `echo {} | /tmp/ss/smbjconv.pl hex euc` \;
807名無しさん@お腹いっぱい。:2006/03/18(土) 23:14:32
>>806
findの -execのところに ` ` 書いても期待通りに動作しないと思うぞ。
808名無しさん@お腹いっぱい。:2006/03/18(土) 23:59:27
find実行される前に展開されんだろ
809名無しさん@お腹いっぱい。:2006/03/19(日) 00:18:50
>>798
うーん、795の意図を正確に処理したら、
子プロセスがたくさん出来て困るんですけど。
810名無しさん@お腹いっぱい。:2006/03/19(日) 01:37:00
すいませんが、お力を貸してください
実行されたらあるディレクトリがあるか調べて
そのディレクトリが存在していれば○○
存在していなければ停止

このようなシェルスクリプトはどう書けばいいのでしょうか?
できればbashとshの両方が知りたいです
811名無しさん@お腹いっぱい。:2006/03/19(日) 01:47:49
>>810
man test
812名無しさん@お腹いっぱい。:2006/03/19(日) 04:34:39
>>810

if [ -d あるディレクトリ ]
then
○○
else
停止
fi
813名無しさん@お腹いっぱい。:2006/03/19(日) 06:04:35
>>810

A = 'ps ax | grep あるディレクトリ | wc -l'

if [ $A ]; then
○○
else
停止
fi
814名無しさん@お腹いっぱい。:2006/03/19(日) 06:05:20
>>810街がえっタ

A = 'ls | grep あるディレクトリ | wc -l'

if [ $A ]; then
○○
else
停止
fi
815名無しさん@お腹いっぱい。:2006/03/19(日) 09:02:40
>>813-814
何がしたいんだ? >>812の正解のあとで間違った答えを出して
816名無しさん@お腹いっぱい。:2006/03/19(日) 09:26:29
で、>>806 だと不正解なわけだが、誰も正解はわからないのかな?
817名無しさん@お腹いっぱい。:2006/03/19(日) 09:26:39
>>813
君も man test
818名無しさん@お腹いっぱい。:2006/03/19(日) 09:32:34
>>811 man で回答するのヤメレ。

>>812 正解。

>>813-814 初心者かな? >>812 の正解を参照汁。
それだとディレクトリがなくても wc -l の結果の 0 が Aに入るので、
ifで常に結果が真になる。grepでの判定も曖昧。
そんなことしなくても [ -d hoge ] でできることを覚えろ。
819名無しさん@お腹いっぱい。:2006/03/19(日) 09:34:42
>>811,817
おまえら一生manだけ読んでろ。manを読むばかりで手を動かさない机上の空論者だな。
820名無しさん@お腹いっぱい。:2006/03/19(日) 09:40:23
>>808
はぁ?
>>806 はfind実行する前に ` `が展開されるよ。
しかも、find の -exec のあとは直接のコマンドであって、
シェルスクリプトではないため、
-execの実行時には一切のシェルの解釈を受け付けない。
だから、仮に ` ` がfindの実行前に展開されていないとすると、
逆に -exec の時に ` ` がエラーになる。
いずれにしても、>>806 は大間違い。

俺は正解を知ってるが、回答者バトルのために敢えて書かない。
わかるモン居たら書いてみろ。
821名無しさん@お腹いっぱい。:2006/03/19(日) 09:50:16
エレガントなずっこんばっこんスクリプトまだー?
822名無しさん@お腹いっぱい。:2006/03/19(日) 10:45:01
>>820
熱くなりすぎ。>>808>>807への突っ込みだと取ったんだが。
823名無しさん@お腹いっぱい。:2006/03/19(日) 13:05:49
>>807 の指摘は正しい。
それに突っ込んでる >>808 は間違い。
おおもとの >>806 が間違いなのは言うまでもないが。
824名無しさん@お腹いっぱい。:2006/03/20(月) 12:00:36
>>818
私英語苦手・・・・じゃなくて、日本語苦手。
825名無しさん@お腹いっぱい。:2006/03/20(月) 14:43:21
ほげ
826名無しさん@お腹いっぱい。:2006/03/20(月) 16:27:41
ぴよ
827名無しさん@お腹いっぱい。:2006/03/20(月) 16:36:01
>>824
アンカー先間違えてる?
818にそう言っても話が繋がらないのだが・・
828名無しさん@お腹いっぱい。:2006/03/20(月) 16:51:18
つながらなくて困るようなスレの流れじゃないし。
829名無しさん@お腹いっぱい。:2006/03/20(月) 21:22:48
質問です。

カレントディレクトリ以下(サブディレクトリ含)にある.c,.cc,.cppのファイル数を知りたいのですが、どうしたらよいのでしょうか。
find ./* -name *.c | wc -l
をそれぞれの拡張子で、では無く、一発で3種類のファイル数を求める方法を知りたいです。

後、
./script < inputfile
と入力した時、inputfileの中身をscript内で使うにはどうしたらよいでしょうか。
./script 1 2
とやると$1に1、というようになりますが、ファイルに
1
2
とあり、そのファイルを入力として渡す時はどのようにして1や2を得るのでしょうか。
830名無しさん@お腹いっぱい。:2006/03/20(月) 21:40:01
>>829
Q1 何故、findの機能を調べようとしないんだ?
Q2 何故、そのスクリプトエンジンの機能を調べようとしないんだ?
831名無しさん@お腹いっぱい。:2006/03/20(月) 22:28:06
またman読めよらしいな
832名無しさん@お腹いっぱい。:2006/03/20(月) 22:33:50
>>830,831
そういうお答えはご遠慮願います。
ちゃんとわかる方のみ、ご回答よろしくお願いします。
833名無しさん@お腹いっぱい。:2006/03/20(月) 22:38:06
>>829
一問目は、man shかman bashして、
パス名展開(Pathname Expantion) のところ読んでね。
834名無しさん@お腹いっぱい。:2006/03/20(月) 22:44:35
>>833
>>829 の1問目は、「一発で3種類のファイル数を(それぞれ)求める方法」
らしいから、それは shの「パス名展開」を読んでも解決にならないだろ。
835名無しさん@お腹いっぱい。:2006/03/20(月) 22:47:22
また「知ったかman厨」か。