[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 08/05 09:21 / Filesize : 196 KB / Number-of Response : 858
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名無しさん@お腹いっぱい。 [2008/02/11(月) 19:21:07 ]
シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。
まずは注意点、リンク、地鎮祭など(>>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 でトレースしましょう。

前スレ
シェルスクリプト総合 その9
pc11.2ch.net/test/read.cgi/unix/1187130302/

825 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 22:21:36 ]
すんません、検索したけど見つからなかったので教えてください。
bash + awk, bc, perl あたりで、小数部が3桁の計算をして、
その結果を変数に格納してます。その後、その変数の値を
絶対値にして返してくれるコマンドはありませんか?
上記のbash, awk, bc, perl あたりでできれば一番良いのですが。
よろしくお願いしまつ。

826 名前:名無しさん@お腹いっぱい。 [2008/05/06(火) 22:44:52 ]
> 820、821

ありがとうございました。
Bシェルで作成します。


作成したのですが、複数ファイルがマッチした場合、

ファイル名: binary operator expected

が表示され、マッチしたにも関わらず、elseが適用されます…。

ご存知でしたら、複数マッチしても、真となるような方法を教えて頂けませんでしょうか。

827 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 22:58:20 ]
>>825
マイナス符号を取ったらいいだけだろ

$ var1=-123.456
$ expr $var : '-*\(.*\)'
123.456
$ var2=123.456
$ expr $var : '-*\(.*\)'
123.456


828 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:01:42 ]
>>826

#!/bin/sh

if ls /tmp/a?a.log 2>/dev/null; then
echo 'ファイルが見付かりました'
else
echo 'ファイルが見付かりませんでした'
fi


829 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:14:46 ]
>>825

$ var=-123.456
$ echo ${var#-}
123.456
$ var=123.456
$ echo ${var#-}
123.456

830 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:22:26 ]
bash依存乙。

831 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:29:02 ]
だからksh由来だと何度(ry

まあテンプレにもあるようにsh以外ならそう明記すべきだな。

832 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 11:40:42 ]
カレントディレクトリ配下のファイルにsedをかけたいのですが、
どのようにしたらできますか?

833 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 11:50:19 ]
>>832
要エスパー質問だなw

for file in *
do
sed 's/hoge/hage' "$file" > "$file".new
done

てことをやりたいのか?



834 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 11:54:09 ]
>>832
OSやシェルの種類/バージョンは秘密ですか?
それを秘密にしたままでは誰も答えられないでしょう。
このレス以外、レスは0件でしょう。

835 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 11:58:42 ]
OSはわかりません。(アウトソーシングでunameが使えないため)
ShellはBashです。
$ bash --version
GNU bash, version 3.1.17(1)-release

>>833
それだと、カレントディレクトリのファイルしか置き換えできません。
カレントディレクトリ配下をすべて置き換えたいです。
また、置き換えしたいので、.newファイルを作成したいのではないです。
(名前を変更すればいいだけですが。)

836 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 12:02:49 ]
>>835
find . -type f -exec sed -i 's/hoge/hage' {} \;

837 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 12:06:32 ]
>>834
OS関係ないだろw

すでに適切な回答がなされた後で再読み込みもせずに余計なことを書いた
>>834 は今ごろ赤面。

838 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 12:09:01 ]
>>835
「カレントディレクトリ配下」という言葉の使い方を間違ってます。

839 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 14:40:31 ]
>>832, >>834-835, >>837-839
具体例を出さない書き込みは禁止。

840 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:20:43 ]
>>838
配下っていう意味的にはあってるでしょ

841 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:21:36 ]
>>840
合ってない。直下のディレクトリのみ指す用語。

842 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:24:34 ]
>>841
配下って言うのは、傘下って意味。
参加は直下以外も指す。

ダイハツの下もTOYOTAの傘下でしょ。

843 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:39:44 ]
>>842
勝手に言葉を定義されても、困るのですが。



844 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:46:27 ]
その人の支配に属していること。また、その者。手下。部下。
- 三省堂提供「大辞林 第二版」より

類語:
⇒ 関連語 てした【手下】
⇒ 関連語 さんか【傘下】
⇒ 関連語 したやく【下役】
- YAHOO辞書より

845 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:47:48 ]
一言「サブディレクトリ以下も含む」と付け加えれば意味が通じたのに、
>>832 は「サブディレクトリ」という用語を知らないに1票。

846 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:52:45 ]
例えば、
/aaa/bbb
というディレクトリがあって、
touch /aaa/bbb/ccc.txt
ってやりたい時、
bbbディレクトリに書き込みパーミッションがあれば、
aaaディレクトリは書き込み禁止であっても書き込める。
よって、bbbはaaaに支配されているわけではない。
aaa自体の書き込みパーミッションは、
aaa直下に作成するファイルにしか効かない。
つまり、bbbはaaaの支配には属していない。

847 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:10:11 ]
基本的には親ディレクトリを削除したら下は全部削除されるんだから支配されてるでしょ。
孫請け会社が親とは直接的なやり取りがないのとおなじ

848 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:19:12 ]
リンク

849 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:19:17 ]
>>846 >>847
だから、勝手に言葉を定義されても困るのですが。

>>845
「再帰的(reccursive)に」というキーワードがありますね。 よくあるオプションは-rですか。


850 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:21:22 ]
-Rだな

851 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:33:05 ]
>>849
言葉を定義してるはあなたも同じでしょ。

YAHOO辞書に従うと、類義で傘下があるから傘下としてはただしいんだし。

852 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:42:10 ]
>>851
いや、してませんけど。
言葉は流動的なもので、大辞林や広辞苑にこう書かれている、としても、
それがすべての場合に同様に正確にあてはまるわけではないのは、日常の
言葉のやりとりで体得していないのですか?
プログラム言語じゃあるまいし。

853 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 20:20:38 ]
>>847
逆。下のディレクトリがあると親ディレクトリは削除できない。
そういう意味では子に親が支配されてる。

あと、NFSとかnullfsでループバックマウントする場合、
子のディレクトリを別の場所にマウントすると
まさに親ディレクトリに関係なく子のディレクトリにアクセスできる。
ディレクトリ間は単にリンクしあっているだけであって、支配関係はない。



854 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 22:40:38 ]
>>852
指標にはなるでしょ。
根拠をしめしてるだけ、ちゃんと示してる。

>>853
削除できないようにしてるだけ。

855 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 22:59:03 ]
いったいなんのスレだここはw

856 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/08(木) 05:17:48 ]
こういう宗教戦争があるのがUNIX板のいいところ

857 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/08(木) 08:25:57 ]
どうでもいいが、>>836 で正解もらってるのに、
>>835 = >>832 から礼の一言もなしに書き逃げしてるなw






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<196KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef