1 名前:名無しさん@お腹いっぱい。 [2008/05/20(火) 20:58:04 ] シェルスクリプトの総合スレです。 スクリプトのお勉強・自慢・腕試しなどにどうぞ。 まずは注意点、リンク、地鎮祭など(>>1-6 くらい)をご覧ください。 □お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashなので特に注意。 ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルスクリプトのことをシェルってゆーな ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも RubyやPerlの方が適した仕事には素直にそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 シェルスクリプト総合 その10 pc11.2ch.net/test/read.cgi/unix/1202725267/
59 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 18:14:00 ] >>58 pc11.2ch.net/test/read.cgi/linux/1211384088/211 の人?
60 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 18:14:58 ] そんな事どうだっていいだろうがカス
61 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 18:18:01 ] 図星かw
62 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 18:51:36 ] >>59 >>61 わからないなら黙ってろ
63 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 19:07:31 ] >>60 >>62 君も黙ってなよw 言ってることは同意だけど。
64 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 19:09:55 ] pgrepは戻り値返すよ。 if pgrep hoge; then 何か fi で桶。
65 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 20:15:40 ] >>64 ありがとうございました
66 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 21:20:30 ] >>64 pgrep で確認してるのであって、if で確認してるわけじゃないと思うが。
67 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 21:34:58 ] >>66 本人がいいって言ってるんだから、それがすべて
68 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 01:35:31 ] >>66 Cでも何でも条件で確認して、ifはその結果で分岐するだけだと思うが。
69 名前:名無しさん@お腹いっぱい。 [2008/05/28(水) 21:18:30 ] 1から100までの乱数を得るとかってでないですかね
70 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 21:22:39 ] >>69 echo $((RANDOM*100/32768+1))
71 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 22:07:29 ] ありがとうございます 変数であるんですね ちなみに32768というのは?
72 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 22:09:29 ] 2の15乗。15bit乱数だから。
73 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 22:10:32 ] bash依存乙w
74 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 22:28:12 ] だからksh由来だと何度(ry
75 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 22:29:03 ] >>73-74 わからないなら黙ってろ
76 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 22:45:00 ] 純正シェルだとどうやるの?
77 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 23:09:49 ] 純正ってナニ?
78 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 23:16:10 ] bshじゃないか? bashじゃ無いオリジナルの
79 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 01:10:09 ] むかし、Bee Shell(ミツバチシェル)ってのを使ったことがあるせいか、 Bourne Shellのことはshか/bin/shと書いた方がいいような気がする。
80 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 02:18:20 ] sh が bashのリンクになってるのって最近のlinuxだけ?
81 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 03:11:30 ] >>79 HP-UXやAIXはksh改変版が使われている。 なんで、kshで拡張された便利機能もほとんど使えるようになっている。
82 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 05:28:36 ] >>80 UbuntuやDebianの/bin/shはdash
83 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 06:45:40 ] 能書きはいいから、純正シェルでのやりかた答えろ
84 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 07:08:01 ] >>66 >>83 なんなの、この屑は
85 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 07:24:03 ] 純正シェルなんて言葉どこで覚えてきたんだ?
86 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 07:27:42 ] >>85 わからないなら黙ってろ
87 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 07:28:49 ] はーーーーーーい
88 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 07:34:09 ] >>83 echo $$
89 名前:69 mailto:sage [2008/05/29(木) 10:47:07 ] すいません >>79 をループして繰り返すと 3 20 43 70 81 10 15 49 60 87 みたいに1から100の間で増えて戻って増えてを繰り返します この規則性をなくせないですか?
90 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 11:10:35 ] >>89 echo $(($(head -c 2 /dev/urandom | od -An -d)*100/65536+1))
91 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 12:59:00 ] おお 意味はまったく理解不能ですがこれでいけそうです ありがとうございます
92 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 13:20:20 ] >>90 OS依存、GNU依存、bash依存乙。
93 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 13:24:26 ] >>92 わからないなら黙ってろ
94 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 13:34:33 ] 純正シェルではどうやるの?
95 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 16:32:15 ] 純正シェルでは rm /bin
96 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 17:05:04 ] >>95 わからないなら黙ってろ
97 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 17:14:20 ] >>96 わからないなら黙ってろ
98 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 18:14:00 ] わからないならオナってろ
99 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 22:09:56 ] >>92 いちいち五月蝿いよ。 よりポータブルに直したい奴は、直して自分で書けばいいよ。
100 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 23:02:12 ] >>99 >1 > bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 って事なんじゃね。 つまり嫌味を言いながら実はこの決まりを代行してるツンデレ。 あと>92-94は>73-76の74が足りないな。おしい。
101 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 23:12:48 ] >>100 わからないなら黙ってろ
102 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 23:14:45 ] うるさいのが一人いるなッ
103 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 00:38:12 ] ッ
104 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 00:42:35 ] でも、言ってることは正しいな 書くべきだよねえ
105 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 06:43:58 ] >>101 わかっているから黙ってない
106 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 07:57:37 ] >>100 明記できる奴は明記すればいい。 ポータブルに直せる奴は直せばいい。 >>92 みたいな屑が一番邪魔。
107 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 08:45:48 ] 質問者が環境をちゃんと書けばいいんだよ。
108 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 08:50:20 ] 質問者の環境にかかわらず、純正シェルで動くことが条件。
109 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 09:59:15 ] 質問テンプレ 使っているOS名・バージョン: (※LinuxユーザはLinux板へ) 使っているシェルの名前・バージョン: 使っているシェルのフルパス: 移植性: 上記環境で動けば十分 / 多くの環境で動かす必要がある
110 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 10:12:44 ] GNU/Linux, *BSD使い始めたころから補完ができるってだけの理由で特に理由もなくBash使ってるけど 他に何か良いShellないかな。 Bashに特に不満はないけど。
111 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 10:28:30 ] zsh使ってみれば
112 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 10:28:37 ] >>109 氏からの回答が欲しい場合は >>109 に従ってね。 でも俺はエスパーだから、OSとかバージョンとか書かなくても回答できちゃうよ。 気軽に質問してね。もち、Linuxユーザーの質問もOK。
113 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 11:14:08 ] エスパー>>112 からの回答が欲しい場合はエスパースレへ。 pc11.2ch.net/test/read.cgi/unix/1207042632/ 前任のエスパーは質問者の環境壊して再インストールさせる低レベルだったけど、 >>112 はそんなアホじゃないだろうと期待。
114 名前:名無しさん@お腹いっぱい。 [2008/05/30(金) 11:41:59 ] カレントに移動しないと起動できないソフトがあります。 これを、カレントを移動しなくて済むようにするシェルはできませんか? >>109 さん以外の方、回答をよろしくお願いします。
115 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 13:39:40 ] CentOS bin/bashの条件式での質問です。 前提としまして、file1、file2、file3、file4という似たファイル名が 複数あるとします。 そこで条件式内で、[ -e file* ] というようなfileから始まるファイルに一致させたいのですが どのように記述したら宜しいのでしょうか?
116 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 13:40:52 ] >>115 シェルスクリプト総合@LINUX Part4 pc11.2ch.net/test/read.cgi/linux/1210999497/
117 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 13:44:34 ] >>115 そういう場合はlsの戻り値を使う。 if ls file* > /dev/null 2>&1 ; then hoge fi
118 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 13:45:16 ] >>116 わからないなら黙ってろ
119 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 13:48:09 ] >>116 スレ間違えてしまいすいません、誘導ありがとうございます。 >>117 lsの戻り値を条件式で使えたとは盲点でした。多少分からない 箇所がありますので調べつつ挑戦します。ありがとうございました
120 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 14:10:40 ] >>118 わかっちゃいるけどやめられない
121 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 20:38:57 ] >>114 普通に、 #!/bin/sh cd /path/to/hoge exec ./hogesoft "$@" で桶。cdしてしまうように見えるが、シェルスクリプト自体が別シェルなので カレントディレクトリは実行時のディレクトリから変わらない。
122 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 03:49:40 ] こんなスクリプトを書いてプロセス監視&常時起動させていますが、 数時間走らせると、★の行を食ったまま、停止してしまいます。 orz 原因&解決策か、もしくはタイムアウトを設定する方法を ご教示いただけませんでしょうか。。 #!/bin/sh while true do ★ret=`ps -ef | grep "collector.php" | grep -v grep | wc -l` if [ $ret -eq 0 ]; then php /hoge.php & fi sleep 1 done
123 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 06:14:58 ] pgrepないの?
124 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 07:19:56 ] >>122 まず、wc -lしたりretに代入したりしてるのが無駄。 grepは戻り値返すから、 if ps -ef | grep "collector.php" | grep -v grep > /dev/null; then で桶。
125 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 07:34:52 ] >>122 発想を転換しろ。 もし、php /hoge.phpを起動して、落ちたら再度起動、ってやりたいだけなら、 while : do php /hoge.php done だけでOK。&は付けない。sleepもpsも必要なし。
126 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 17:03:52 ] >>123 ,124 ありがとう、おっしゃる通り。 試してみます。 >>125 惜しい。 実はhoge.phpは1種類ではなく、3種類存在します。 実際はret〜fi間が、3個あり、hoge1.php〜hoge3.phpを対象にチェックしています。 #>>122 のコードで、collector.phpとhoge.phpは同一です。コピペミススマソ。 #!/bin/sh while true do ★ret=`ps -ef | grep "hoge1.php" | grep -v grep | wc -l` if [ $ret -eq 0 ]; then php /hoge1.php & fi ★ret=`ps -ef | grep "hoge2.php" | grep -v grep | wc -l` if [ $ret -eq 0 ]; then php /hoge2.php & fi ★ret=`ps -ef | grep "hoge3.php" | grep -v grep | wc -l` if [ $ret -eq 0 ]; then php /hoge3.php & fi sleep 1 done hoge1.php の終了を待たずに hoge2.php や hoge3.php の プロセスチェック&起動を行いたいため、末尾に&を付けている次第です。 hoge1.php〜hoge3.php毎にシェルスクリプトを3個作成すれば >>125 の通りで期待が叶いますが、それはそれで無駄な感じがしまして。
127 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 17:23:55 ] >>126 シェルスクリプトひとつでできる。 while文の最後のdoneに &を付けるのがポイント。 while : do php /hoge1.php done & while : do php /hoge2.php done & while : do php /hoge3.php done &
128 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 18:12:48 ] >>127 げ、すげぇ。できました。。プロセスが3つ立ち上がるのですね。 ありがとうございます!! シェルスクリプトすごいっすねぇ。。。感動。
129 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 18:53:56 ] 質問: grep の -q オプションってどの grep(1) でも使えたっけ?
130 名前:名無しさん@お腹いっぱい。 mailto:age [2008/05/31(土) 18:55:12 ] 年中無休発狂妄想爆裂憤死寸前粘着真性キチガイ包茎池沼病気猿男(狂猿)◆QfF6cO2gD6による気違いカキコの続き: 初心者もOK! FreeBSD質問スレッド その95 pc11.2ch.net/test/read.cgi/unix/1210728872/706-708,710,712 706 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/05/31(土) 16:24:19 AAとコピペばっか 707 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/05/31(土) 16:25:33 アク禁報告を誰もしてないのが不思議w してても無視されてるのか 708 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/05/31(土) 16:31:15 >>704 假性ですが何か? 710 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/05/31(土) 17:45:14 粘着キチガイ男(狂犬)をアク禁にしたらリアルに無差別殺人起こす可能性が高いからな。 712 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/05/31(土) 17:59:51 ビビって書き込み止めたのか?と煽ってみる -------------------------------------------------------------------------------------------- UNIX板のあちこちのスレッドを荒らしている凶悪メンヘラ・真性キチガイ猿粘着◆QfF6cO2gD6。 いつも荒らしを憎むようなレスをするが、実際に荒らしているのは自分。 気色の悪い年中無休発狂粘着真性キチガイ包茎池沼病気猿男(狂猿)◆QfF6cO2gD6があちこちのスレに 遂に理解できないような基地害カキコをし始めた!気持ちが悪い…。
131 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 19:09:54 ] >>129 unlike GNU grep, traditional grep did not conform to POSIX.2, because traditional grep lacked a -q option and its -s option behaved like GNU grep’s -q option. Shell scripts intended to be portable to traditional grep should avoid both -q and -s and should redirect output to /dev/null instead.
132 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 19:11:42 ] ヘブライ語でおk
133 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 19:24:58 ] 要約すると、-qオプションがない古いgrepもあるから、 grep hoge > /dev/null にした方が移植性が高いってこと。
134 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 19:36:58 ] >>131 >>133 Danke schoen
135 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 19:48:04 ] Bitte schöen
136 名前:名無しさん@お腹いっぱい。 [2008/06/01(日) 08:07:21 ] 質問です。 5から10までの数字をランダムに、しかも2桁に揃えて表示させたい。 空欄を埋めてください。 #!/bin/sh 空欄 echo $randtime
137 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 08:12:38 ] >>136 randtime=`expr 0$((RANDOM*6/32768+5)) : '.*\(..\)'`
138 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 16:33:54 ] rand() { dd if=/dev/random bs=1 count=2 2>/dev/null | od -A n -t u } randtime=$(printf "%02d" $(( 5 + $(rand) % 6 )))
139 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 17:01:40 ] 純正シェル、かつ、printf(1)なし環境でも動く方法: randtime=`expr 0\`expr \\\`date +%S\\\` % 6 + 5\` : '.*\(..\)'` ` `が3重ネストしてるので注意。
140 名前:名無しさん@お腹いっぱい。 [2008/06/01(日) 19:57:10 ] (;ω;)たちけて〜 #!/bin/sh i=0 while [ $i -le 23 ] ;do time=`printf $i"%02d\n"` i=`expr $i + 1` echo $time done ↓結果↓ ↓目的↓ 000 0000 100 0100 200 0200 ・・・略 1000 1000 1100 1100 ・・・略 2300 2300 0000〜2300 最初から出力4桁にしたいでつ・・・ どこがおかしいのかおせいて〜(;ω;)ブワッ
141 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 20:02:40 ] printf "%02d00\n" {01..23}
142 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 20:18:41 ] >>140 i=0;while [ $i -le 23 ];do printf '%02d00\n' $i;i=`expr $i + 1`;done >>141 bash依存失格。
143 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 20:33:37 ] seqが使えるなら seq -f "%02g00" 0 23 awkで書くなら awk 'BEGIN { for (i = 0; i < 24; i++) printf("%02d00\n", i) }'
144 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 20:51:55 ] printfがないOSもある。 i=0;while [ $i -le 23 ];do expr 0"$i"00 : '.*\(....\)';i=`expr $i + 1`;done
145 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 20:58:05 ] exprはどこにでもあるの?
146 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 21:05:12 ] exprもないOSのために、 純正シェルで、内部コマンドのみで実現。 z=0;set -;while [ $# -le 23 ]; do [ $# -ge 10 ] && z=; echo $z$#00; set "$@" d; done
147 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 23:56:19 ] >>140 でつ >>141 エラーが出てしまった・・・・・・{01..23}の書き方はzshらしいです >>142 でけた! >>143 sedあります! あ、seqか 出来た出来たです! >>144 printfあるけどその方法もでけた! >>145 Linux/FedoraとCentには入ってましたSunOSや*BSDは存じ上げません >>146 set の使い方がにくいですw >>142-146 Grateful !!
148 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 00:13:39 ] cat -n とか nl とか使う手もあるよね
149 名前:名無しさん@お腹いっぱい。 [2008/06/02(月) 01:37:46 ] Bシェルで質問です。 あるディレクトリのstyファイルの文字コードを全てnkf -sで変換するシェルを作りたいのです。 しかし、全てのファイルに対して操作する方法がわかりません。 つまり、 nkf -s *.sty > *.sty2 mv *.sty2 > *.sty rm *.sty2 みたいなことがやりたいんですが、この部分どうしたらいいのでしょうか。
150 名前:名無しさん@お腹いっぱい。 [2008/06/02(月) 01:58:11 ] >> 149 for i in *.sty; do nkf -s $i > $i.sjis; mv $i.sjis $i; done
151 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 01:59:07 ] find使う
152 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 09:07:16 ] >>149 シェルってゆうな。クズ。
153 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 11:15:53 ] >>149 nkf -s --overwrite *.sty
154 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 11:19:34 ] シェルってゆうなってうるさい奴ってなんなの?バカなの? スクリプトのスレなんだから分かるだろうが。氏ねよめんどうくせえ
155 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 11:23:38 ] HDDのバックアップを効率的に行なうシェルを発光したいんですが、 初心者でも簡単にできますか?
156 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 11:25:29 ] スルーできないやつってなんなの?
157 名前:名無しさん@お腹いっぱい。 [2008/06/02(月) 11:27:00 ] お助けください。 .(ドット)で区切って後ろから1番目と2番目を抜き取るにはどうしたらいいでしょうか? 例えば aaa.bbb.ccc.dddをccc.dddに置換したいです。
158 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 11:30:19 ] >>157 sed 's/[^\.]*\.[^\.]*\.//' cut -d. -f3-
159 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 11:32:03 ] あ、前2つを削るんじゃなく後ろ2つを残すのか。