1 名前:デフォルトの名無しさん [2005/04/04(月) 03:43:03 ] シェルスクリプトに関する質問・回答や議論等を行う相談室スレッド。
231 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 20:53:50 ] >229 すくなくともgnuのdateはできるよ ttp://www.linux.or.jp/JM/html/GNU_sh-utils/man1/date.1.html
232 名前:227 mailto:sage [2006/01/09(月) 22:31:15 ] >231 おおこんなことができるのですね。 勉強になりました。 これでなんとかできそうです、ありがとうございました。
233 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 22:38:31 ] どんな気持ちでこんなものを通したのか・・・ date --date '2 days ago' days agoって・・・
234 名前:227 mailto:sage [2006/01/09(月) 23:50:58 ] 行けそうと思ったのですが、現在時からの日にち計算しかできませんでした。 うーん。。 特定した日にちから指定するのは無理かもしれません。。
235 名前:デフォルトの名無しさん [2006/01/10(火) 00:05:08 ] 試してないので外れだったらスマンが date --date '20060101 + 1 month'
236 名前:227 mailto:sage [2006/01/10(火) 00:12:55 ] >234 いけました汗 ずっと1 monthの部分を外に出して実行してた大馬鹿者でした。 ありがとうございました。
237 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 05:42:11 ] bash って何て読むんですか? ばっしゅ ヴぁっしゅ びーしぇる ヴぉーんしぇる ヴぉーんあげいんしぇる ぷろんぷと・ヴぁっしゅ ヴぁにっしゅ 皆さん何て読んでますか?
238 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 06:54:52 ] bash
239 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 06:59:25 ] シーシェルは孤高
240 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 10:36:42 ] csh使ってる奴って変態なの?
241 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 12:13:36 ] Solarisだと標準がcshだし。
242 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 17:05:01 ] tcshが使えるのにcshを使ってたら変態 スクリプト書くのにもcshを使ってたら変態
243 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 20:09:55 ] >>241 こらこら、嘘を教えなさんな。
244 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 20:22:49 ] Solaris 1 のころならな
245 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 21:42:11 ] >>243 Admintoolでshとcsh以外選べたっけ?
246 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 22:10:04 ] >>245 admintool 自体が obsolete.
247 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 22:33:06 ] そうだったのか。
248 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 03:43:32 ] Oracle入れるとcsh押し売りされるよね
249 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 04:03:14 ] あれは謎シェルだねw 何で直さないんだろうか。
250 名前:デフォルトの名無しさん [2006/01/22(日) 17:16:33 ] command | tee log | grep hoge としたときに、commandの終了ステータスを知る方法はありませんか? command > log ret=$? grep hoge log としとけばretを見ることで可能なんですが、それ以外で。
251 名前:デフォルトの名無しさん mailto:sage [2006/01/23(月) 00:42:08 ] kwsk
252 名前:デフォルトの名無しさん mailto:sage [2006/01/23(月) 16:39:20 ] (command; echo $? >/tmp/hoge) | .... じゃだめ?
253 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 12:23:51 ] >>252 おお、なるほど! ありがとうございます。
254 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 22:18:39 ] シエル先輩をいぢくるスレはここですか?
255 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 06:00:01 ] >>250 もう遅いかな? bash には PIPESTATUS ってシェル変数があるよ。 $ true | false | exit 3 | true $ echo ${PIPESTATUS[@]} 0 1 3 0
256 名前:デフォルトの名無しさん [2006/02/19(日) 05:53:58 ] ファイルの更新日時を取得する方法を教えてください
257 名前:デフォルトの名無しさん mailto:sage [2006/02/19(日) 12:04:08 ] >>256 stat でもSunとかHPとかないOSもあるかも。
258 名前:デフォルトの名無しさん mailto:sage [2006/02/19(日) 13:39:39 ] >>256 つ[`ls -l`]
259 名前:デフォルトの名無しさん [2006/02/25(土) 01:29:18 ] 超初心者な質問で恐縮なのですが、、 *.jpgと*.JPGのファイルを判断して *-new.JPGのように名前を変更するには どのようにしたら良いでしょうか? お知恵をお貸しください。 よろしくお願いします。
260 名前:デフォルトの名無しさん mailto:sage [2006/02/25(土) 01:53:34 ] ls *.jpg|sed -e 's/\(.*\).jpg/mv \1.jpg \1-new.JPG/' > /tmp/foo とでもして、 source /tmp/foo でどう?
261 名前:デフォルトの名無しさん mailto:sage [2006/02/25(土) 02:50:31 ] bash + find ならこんな感じ? find . -regex '.*\.\(jpg\|JPG\)' |while read i; do mv "$i" "${i%.*}-new.JPG"; done
262 名前:デフォルトの名無しさん [2006/03/14(火) 17:51:21 ] @@@
263 名前:デフォルトの名無しさん mailto:sage [2006/03/14(火) 18:29:29 ] 【積年の】旦那にしてる密かな仕返し【恨みじゃー】 human5.2ch.net/test/read.cgi/ms/1141694640/ 8 名前:可愛い奥様[] 投稿日:2006/03/07(火) 11:05:23 ID:8dtluKkp 夫の歯ブラシで洗面所の排水溝掃除。 洗面所をビショビショに汚した罰だ。 20 名前:可愛い奥様[age] 投稿日:2006/03/08(水) 00:40:17 ID:pRrk6A21 前に頭きた時あって 1度だけ歯ブラシで肛門カキカキしちゃった 22 名前:可愛い奥様[] 投稿日:2006/03/08(水) 01:27:12 ID:gU5mHc7J よかった。どこのお宅も同じようなことしてて。 24 名前:可愛い奥様[] 投稿日:2006/03/08(水) 01:36:35 ID:SSSFsTqE そうそう、ヘンなモノはダンナのお皿へ直行だよね。 41 名前:可愛い奥様[] 投稿日:2006/03/08(水) 11:55:18 ID:sjj+/60Q 見てるだけで気が晴れるな! 皆さん、頑張ってね! 42 名前:可愛い奥様[sage] 投稿日:2006/03/08(水) 20:33:51 ID:Ju2N1s7+ 年金分割が楽しみじゃのう 63 名前:可愛い奥様[] 投稿日:2006/03/10(金) 08:55:20 ID:qLfJYpJR 家族で密かにはぶっている。 男性は肉体が汚く、精神が美しい傾向がある。(気に入らない相手に肉体的攻撃を加える⇒精神的攻撃も加える男は猛者) 女は肉体が美しく、精神が汚い傾向がある。(気に入らない相手に精神的攻撃を加える⇒肉体的攻撃も加える女は猛者) 女は隠れて悪事をする。気に入らない女子を便所でボコったり、便器舐めさせたり、男の友人を使ってレイプ、仲間外れにしたり。陰口、嫉妬。 女は対人関係において、この汚い性格を隠そうとするため、外面が非常によくなる。(猫かぶり) 男性諸君は外面に騙されないように気を付けて下さい。
264 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 01:37:12 ] ²
265 名前:http://www.vector.co.jp/soft/win95/util/se072729.html mailto:http://msdn2.microsoft.com/ja-jp/library/h2k70f3s.aspx [2006/03/18(土) 20:34:48 ] TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
266 名前:デフォルトの名無しさん [2006/05/30(火) 23:27:37 ] 質問です。Solaris9で、 rsh 192.168.1.1 su - user -c
267 名前:デフォルトの名無しさん [2006/05/30(火) 23:30:23 ] 質問です。Solaris9で、 rsh 192.168.1.1 su - user -c "ls -l" みたいな事やりたいんですけど、 "ls -l"のオプション部分が有効になりません。 なんとかならないでしょうか?
268 名前:デフォルトの名無しさん mailto:sage [2006/05/31(水) 03:19:58 ] >>267 リモートで実行するコマンドをまとめて括れ rsh 192.168.1.1 'su - user -c "ls -l"'
269 名前:デフォルトの名無しさん [2006/05/31(水) 11:10:05 ] 初歩的ですみませんがファイルのreadで質問があります 以下のreadの仕方では最終行にリターンコードがないと 最終行を読んでくれません。※リターンコードがあればreadしてくれますが・・・。 読む方法はないでしょうか cat /aaa.txt | while read FILE do echo $FILE done aaa.txtの内容(この例だとghiを読み込まない) abc def ghi
270 名前:デフォルトの名無しさん mailto:sage [2006/05/31(水) 11:43:23 ] >>269 catじゃなくて、必ず改行するタイプのフィルターに通せばいい。 例えば、awk '{print;}'でもいける。
271 名前:デフォルトの名無しさん [2006/06/09(金) 13:30:25 ] 〜日前のファイルを削除するようなスクリプトを作成したいのですが どのような感じになりますか?
272 名前:デフォルトの名無しさん mailto:sage [2006/06/09(金) 13:34:39 ] >>271 findではいけない理由があるのかね。 取り敢えず、1日(24時間)以上前のファイルを無条件に削除するならこんな感じ。 find . -mtime +1 -exec rm {} \;
273 名前:デフォルトの名無しさん mailto:sage [2006/06/09(金) 14:18:24 ] ctimeじゃないのか
274 名前:デフォルトの名無しさん [2006/06/09(金) 23:03:08 ] >>269 それ、最後の行まで普通にでたんだが、OSによるもんなのか 当方HP
275 名前:デフォルトの名無しさん mailto:sage [2006/06/10(土) 08:59:55 ] 何となく本末転倒な対処 perl -wne 'chomp;print $_."\n";' ./aaa.txt | while read FILE do echo $FILE done
276 名前:デフォルトの名無しさん mailto:sage [2006/06/12(月) 17:01:03 ] こんな感じかなあ。(以下は Linux でシェルは bash 3.00.16 使ってます)。 $ perl -e 'print "abc\ndef\nghi"' >a $ od -c a 0000000 a b c \n d e f \n g h i 0000013 $ cat a | while read s ; do echo "* $s" ; done * abc * def $ ( cat a ; echo '' ) | while read s ; do echo "* $s" ; done * abc * def * ghi $ awk 1 a | while read s ; do echo "* $s" ; done * abc * def * ghi $
277 名前:デフォルトの名無しさん [2006/06/13(火) 11:26:53 ] >>272 数日前のファイルは無条件に削除という認識ではあってるのですが ディレクトリの指定をする場合にはどのようになりますか?
278 名前:デフォルトの名無しさん mailto:sage [2006/06/13(火) 12:03:13 ] >>277 man で調べりゃいいじゃないか。
279 名前:272:'.'はカレントディレクトリとその配下 mailto:sage [2006/06/13(火) 12:12:52 ] >>277 取り敢えずディレクトリ指定しているんだけどなぁ。
280 名前:デフォルトの名無しさん [2006/06/13(火) 13:19:34 ] >>279 例えば、フォルダを指定した場合(/tmp) find /tmp -mtime +1 -exec rm {} \; 上記で/tmpディレクトリ以下の1日以上経過したファイルの削除が行われる と思って、よろしいのでしょうか?
281 名前:デフォルトの名無しさん mailto:sage [2006/06/13(火) 14:05:59 ] ttp://www.google.com/search?hl=ja&q=manpage+of+find&lr=lang_ja
282 名前:デフォルトの名無しさん [2006/06/13(火) 14:19:50 ] 「(::´┏┓`:)なんでそんなに英語を使ってやんのが好きなの?」
283 名前:デフォルトの名無しさん mailto:sage [2006/06/13(火) 14:52:23 ] >>280 何が消されるのか不安なら -exec から後ろをなくしてみればいい。
284 名前:デフォルトの名無しさん mailto:sage [2006/06/13(火) 16:54:29 ] >>280 どうして、マニュアル見て自分で確認せずに聞いて済まそうとするかねえ。 嘘教えられて、重要なファイル消すはめに陥ったらどうするんだよ。
285 名前:デフォルトの名無しさん mailto:sage [2006/06/14(水) 16:04:58 ] 初歩的なことを一つ教えてください。 bshで関数定義したものを別のシェルで呼び出すことは出来ますか? 出来るとすると呼び出し方はどのようになりますでしょうか。
286 名前:デフォルトの名無しさん mailto:sage [2006/06/14(水) 17:02:26 ] できます。 関数が入ったファイルfoo.shをbar.shの中で使いたければ、bar.shの中で . ./foo.sh などとすれば普通に呼べます。
287 名前:デフォルトの名無しさん mailto:sage [2006/06/14(水) 17:06:41 ] なんだ別のシェルって、そういう意味か。 シ ェ ル ス ク リ プ ト っ て 書 け よ。
288 名前:デフォルトの名無しさん mailto:sage [2006/06/14(水) 21:09:56 ] bshスクリプトを/bin/sh以外のシェル、たとえばcshから呼べますか?だったら 「呼べない」が答えですな。というか、そういう質問なのか?
289 名前:285 mailto:sage [2006/06/15(木) 00:14:48 ] bshで書かれたシェルスクリプト内の関数を、 別のbshで書かれたシェルスクリプトで使用することはできますか? ということで・・・(´・ω・`)
290 名前:デフォルトの名無しさん mailto:sage [2006/06/23(金) 14:19:28 ] while文で一つのリストファイルから呼び出しをかけて、ループさせることは 可能だと思うのですが同じwhile文中で違うリストファイルから呼び出しをかけて 変数として扱うことは可能でしょうか?
291 名前:デフォルトの名無しさん mailto:sage [2006/06/24(土) 01:05:24 ] リストファイルって? 呼び出しって? かけるって?
292 名前:デフォルトの名無しさん mailto:sage [2006/06/24(土) 13:18:35 ] >>290 の要求がどうなのかは知らんけど、俺も心当たりある。 ... | while read var; do ...; done っていうパターンあるじゃんか。そうじゃなくて while [ ... ] do if [ ... ]; then read var1 ただしファイルディスクリプタ1(パイプやファイル)から; else read var2 ただしファイルディスクリプタ2(別なパイプやファイル)から; fi done のようなことをやりたいと思うことはあったわ。 俺はexecによるディスクリプタコピーととサブシェルプロセスを組み合わせて やろうとして挫折して、perlに日和った。
293 名前:デフォルトの名無しさん [2006/06/25(日) 02:48:36 ] sudo等でパスワードを求めるプロンプトに expect以外で自動入力する方法はありますか?
294 名前:271 mailto:sage [2006/07/03(月) 10:12:10 ] 教えていただいた通りにやってみたのですがディレクトリを削除しようとします。 find /tmp -mtime +1 -exec rm {} \; ディレクトリ内のファイルのみ削除させる方法はあるのでしょうか? よろしくお願いします。
295 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 10:42:10 ] -type f
296 名前:271 [2006/07/05(水) 10:00:59 ] どうやっても上手く動作しません。 どうやってもエラーが出てしまいます。 エラーの出ない方法があれば、御教示願います。 よろしくお願いします。
297 名前:デフォルトの名無しさん mailto:sage [2006/07/05(水) 11:18:04 ] >>296 >>295
298 名前:271 mailto:sage [2006/07/05(水) 11:31:26 ] 何度もすみません。 295さんの使い方が良くわかっていませんでした。 -type fとすることでファイルを見るというオプションだったのですね。 これで解決することができました。ありがとうございます。
299 名前:デフォルトの名無しさん [2006/07/06(木) 12:01:34 ] DSCN0001.jpg〜DSCN9999.jpgのファイルを全てtravel2006GW0001.jpg〜travel2006GW9999.jpgに変更したいのですが これを実現するLinuxのシェルスクリプトはどう記述したらいいですか? それと travel2006GW0001.jpg travel2006GW0002.jpg ・ ・ ・ のようにtxtに打ち出すのもお願いします
300 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 13:16:58 ] >>299 マルチ死ね。これだからLinux使いの糞は... (ry
301 名前:デフォルトの名無しさん [2006/07/06(木) 13:23:53 ] もう用済みじゃぼけぇwww
302 名前:デフォルトの名無しさん [2006/07/06(木) 14:08:25 ] >>300 用済みなのは君だけ
303 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 23:21:48 ] >>299 #!/bin/sh echo # | tee foo$$ cd $1 ls DSCN*.jpg | sed -e 's/\(.*\)\([0-9][0-9]*\)\(.*\)/mv \1\2\3 travel2006GW\2\3/' | tee -a foo$$ source foo$$ rm foo$$
304 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 08:21:44 ] >>299 $ for i in `seq -w 1 9999` ; do for> mv DSCN${i}.jpg travel2006GW${i}.jpg for> echo travel2006GW${i}.jpg for> done > list
305 名前:デフォルトの名無しさん mailto:sage [2006/07/13(木) 14:49:15 ] >>299 #!/bin/sh for f in DSCN*.jpg do f2=`echo $f | sed 's/DSCN/travel2006GW/'` echo $f2 mv $f $f2 done
306 名前:デフォルトの名無しさん mailto:sage [2006/07/13(木) 16:41:26 ] >>305 >f2=`echo $f | sed 's/DSCN/travel2006GW/'` f2=${f/DSCN/travel2006GW} でいいんじゃねんか
307 名前:デフォルトの名無しさん mailto:sage [2006/07/13(木) 18:24:56 ] >>306 ああ、そうだ。bash はそれで行ける。
308 名前:デフォルトの名無しさん [2006/07/14(金) 15:56:42 ] Bシェルを使用しています。 質問させてください。 ファイル(hoge.dat)の中のデータが下記のように3行あるとします。 1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 この中から「8,9,10」だけを取りたいと思っています。 cut -d "," -f3- $hoge.dat では 3,4,5 8,9,10 13,14,15 を取って来るのですが、何かよい方法はないでしょうか? よろしくお願いします。
309 名前:デフォルトの名無しさん mailto:sage [2006/07/14(金) 17:59:15 ] そのあと普通に grep かますんじゃ駄目なの? cut -d "," -f3- $hoge.dat | grep '8,9,10'
310 名前:デフォルトの名無しさん mailto:sage [2006/07/14(金) 18:23:08 ] だよな 何を根拠に8,9,10なのか何も書かずにいたら echo 8,9,10 だってりっぱな回答だ
311 名前:デフォルトの名無しさん mailto:sage [2006/07/14(金) 19:00:32 ] これでどうだ! awk -F, 'NR==2{for(i=3;i<=NF;i++)if(s!="")s=s","$i;else s=$i;print s}' hoge.txt でも、未確認。
312 名前:デフォルトの名無しさん mailto:sage [2006/07/14(金) 20:50:24 ] これでも喰らえ! head -2 hoge.txt | tail -1 | sed 's/....//'
313 名前:デフォルトの名無しさん mailto:sage [2006/07/14(金) 21:06:11 ] マジレス grep -v 1,2 hoge.txt | grep -v 11 | cut -b 5-10
314 名前:デフォルトの名無しさん mailto:sage [2006/07/14(金) 21:37:57 ] head -c 21 hoge.txt | tail -c 7
315 名前:デフォルトの名無しさん mailto:sage [2006/07/14(金) 22:33:44 ] クマー echo `sed -e 's/$/,/' hage.dat` | cut -d "," -f8,9,10
316 名前:デフォルトの名無しさん mailto:sage [2006/07/14(金) 23:29:04 ] こっちのほうがいいや。 sed -ne '1h;1!H;${x;s/\n/,/g;p}' hoge.dat | cut -d "," -f 8-10
317 名前:デフォルトの名無しさん mailto:sage [2006/07/18(火) 09:56:22 ] ええい。これでどうだ。 perl -ne 'if($.==2){chomp;print join(",",(split/,/)[2..4])."\n";}' hoge.dat ていうか >>308 はどこ行った?
318 名前:Linax初心者 [2006/07/24(月) 23:32:10 ] b-shallとc-shallで入力された日付が有効かどうかの確認のシェルスクリプトを作りたいのですがうるう年の計算や入力された日付が正しいかどうか判断して 正しい日付を入力させるスクリプトなんですが、初心者でわかりませんので よろしくお願いします。
319 名前:デフォルトの名無しさん mailto:sage [2006/07/24(月) 23:42:20 ] >>318 なんか死ね。
320 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 01:03:54 ] Linaxに関しては我々も初心者なもので・・・
321 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 01:25:39 ] えーと、スクリプトを作りたいと言うことは理解できました。 で、なにをお願いされたらよいのでしょう。
322 名前:Linax初心者 [2006/07/25(火) 06:33:39 ] すいません初心者で。まずは日付をキーボードから 入力して存在する日付かどうか判断して、うるう年の 計算して入力された日付が正しければ、正常表示を 間違いなら、再入力を促すものです。たとえば20061313はありえない 日付ですが20060220は正しい日付でその年がうるう年かどうか 判断して2006年 2月20日 水曜日と表示したいのですが 教えていただけますか。よろしくお願いします
323 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 08:45:49 ] えーと、なにを教えればよいのでしょう。
324 名前:Linax初心者 [2006/07/25(火) 09:42:19 ] すいませんが、会社の嫌がらせでまったくコンピュータ したことがパソコンぐらいの45才です。リストラされそうなのですが まったく知識がなくて本を読んでもよくわかりませんから できましたらはじめから教えていただけませんか。 お願いします。うるう年の計算がわかりませんしその日が何曜日かも わかりませんのでよろしくお願いします
325 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 09:55:25 ] >>324 それ以外にも足りん能力がわんさかあると見受けられるので、あきらめてホームレスって下さい。
326 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 10:16:18 ] とても45歳に見えない若々しいおじ様なのかしら♪
327 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 20:40:45 ] しかもマルチポスト どうやって釣られてあげればいいのかな?
328 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 22:15:54 ] まずはマスタファイルを作るんだ 20060725,火 20060726,水 20060727,木 20060728,金 : : あとはわかるな?
329 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 22:33:45 ] そうそう、マスタファイルを作るスクリプトを作ればかなり効率が上がるよ
330 名前:デフォルトの名無しさん mailto:sage [2006/07/28(金) 21:58:18 ] ディレクトリがさ abc/ def/ ghi/ ってな風に同じ階層に3つあって、それぞれの中に srcに対応したMakefileがあんだけどmakeすると abc/ def/ ghi/ ~lib.a とか自ディレクトリより一つ上に生成されてるのよ んでabc、def、ghiどれmakeしても同じ名前のライブラリ作ってんだけど これ作った人は何したかったのかわかんねぇ? これが今日発生したバグですた・・・。 ぼすけてw
331 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 22:56:47 ] >>330 お前にはうかがい知れないすごい思想なのは分かった。