Mac OS XをUnixとして使ってる人の為のスレ 17at MAC
Mac OS XをUnixとして使ってる人の為のスレ 17 - 暇つぶし2ch40:名称未設定
13/11/04 15:39:32.31 EVrN2Nvj0
>>38
ごめんなさいwget -iだとリストはURLしか期待されてないみたい
やっぱ上にあるワンライナーがスマートだと思う

41:名称未設定
13/11/04 15:53:42.16 aDA16vI60
皆さん、たくさんの意見ありがとうございます
初めは軽い気持ちで質問したのですが、とても参考になりました
改めて>>39さんの書き込みを調べて勉強してきます!!!!

42:名称未設定
13/11/04 16:30:25.92 aDA16vI60
とか良いつつ、最後に一つだけ
>>39 氏のワンライナー?って言うの?一行プログラム? なんですが、いわゆるPerlなのでしょうか?
最後にshって書いているのでsh シェルスクリプトというジャンルなのでしょうか?

日本語がおかしくて申し訳ないですがお願いします。

43:名称未設定
13/11/04 16:37:12.27 fx2M/wpt0
URLリストをperlの小さいプログラムで加工してコマンド列を作って、それをシェルに食わせて実行。

44:名称未設定
13/11/04 16:48:45.69 izI/O7VRP
>>43
お世話になります!
ありがとう、調べてくるよ!

45:名称未設定
13/11/04 16:57:14.48 wrrZw+Zh0
sed (& bash) で書くとこんな感じ(?)

cat URLLIST | while read URL
do
wget "$URL" -O "$(echo "$URL" | sed -e 's/.*¥/¥///;s/¥/.*//').html"
done

46:名称未設定
13/11/04 17:27:58.70 wrrZw+Zh0
bash だけでこんな感じで

cat URLLIST | while read URL
do
HOST="${URL#*//}";HOST="${HOST%%/*}"
wget "$URL" -O "$HOST.html"
done

ああ、そういえばという自己満

47:名称未設定
13/11/04 17:45:14.53 aDA16vI60
>>46
catで表示されたLISTを一行ごとにwgetしてるって事ですよね?
それぞれURLとHOSTに変数?として挿入してると
ところで、URLリストの1行目を読みこんで2行目を読み込んでみたいな処理はどこかで行ってるの?
上から順に読み込んで最終行で終了的なのは仕様なのでしょうか?

48:名称未設定
13/11/04 18:02:12.91 wrrZw+Zh0
while
do

done

が、繰り返し構文

read はコマンドで、標準入力からの1行を引数の変数(この場合URL)に展開し、終わり(最終行の次で終了)だとおわりだよーんとステータスを返す
while read なので、read が終わりだよーんになるまで繰り返す

URLからHOSTを取り出すのは文字列操作で、いろいろコマンドがあるわな、そういえばbashにも簡易にできたなというヘンテコな方法

ちなみに
cat URLLIST | while read URL
do
...
done
でなく
while read URL
do
...
done < URLLIST
でも同じ

49:名称未設定
13/11/04 18:10:03.53 aDA16vI60
なるほど、readは1行ずつ読んで終わりだよ~んまで繰り返す処理なんですね。

非常に分かりやすかったです、先生みたいだ。 いや、師匠か
このスレは神様がいっぱいやで~

50:名称未設定
13/11/04 18:21:24.04 wrrZw+Zh0
readは標準入力から1行読み込んでみて、読み込めたら展開して終わりじゃないよを返すか、もう無くて読み込めなかったら終わりだよを返すかだけ

readの様子を見て繰り返すのが
while
do

done

1行ずつ読んで終わりだよ~んまで繰り返す処理は while ; do ;done; と read のニコイチでだよ

51:名称未設定
13/11/04 18:41:11.65 vHRMyjTe0
さっさと>>3でも買って読めよ

52:名称未設定
13/11/04 18:47:34.57 aDA16vI60
>>50
cat「おら!read!ファイルはココだ読め!
  (まぁ何行あるか教えてあげないけどな)」
while「ほら早く行ってこい!」

read「whileさん読めました!
  次の行にも何か書いてあるけど1行目持ってきました!」
while「1行目をwgetに渡して処理完了っと
  おらread!次の行有るなら持ってこいや!」
read「アイアイサー、2行目です! 次は無かったよ!」
while「お?次は無いんだな?wgetに渡して完了っと
>>50さん完了です!」

done!!!

って事ですか?

53:名称未設定
13/11/04 18:49:12.92 0/acsXUp0
O'Reilly Japan - 入門 Unix for OS X 第5版
URLリンク(www.oreilly.co.jp)

54:名称未設定
13/11/04 19:38:40.11 KX48SxSl0
>>10
求める内容として商標や試験をパスしたUNIXとして使う訳じゃなくて、
それら商標以外の伝統的な意味のUnixとして使う。だから小文字で良いはず。

ソニーのウォークマン以外も含むポータブルカセットプレイヤ全般スレ的な感じの
Unixとして使うスレ。
ソニーの許諾得てるからウォークマンで問題ない。的なツッコミは
参考程度にしか求められていない。

55:名称未設定
13/11/04 19:42:15.98 TrapeCq/0
>>53
Learning Unix for OS X Mavericks
の日本語版はいつ出ますか?

56:名称未設定
13/11/04 19:57:08.77 wrrZw+Zh0
>>52
done は while do の終わりがここだよというのを示すだけ。Cで言うと
while( read() ){
}

{ が do
} が done
かな。まあ>>51かな。またはなんかプログラミングの初歩的なものを

57:名称未設定
13/11/04 20:07:57.56 izI/O7VRP
>>56
ターミナルでちょっと長いけど一行で完結!
って奴を学ぶならどんな本を読めば良いですか?
オライリーのサイト?見てみたけど沢山あって、、、

58:名称未設定
13/11/04 20:14:48.42 wrrZw+Zh0
>>57
見過ごしていたけど>>53なんて、まさしくかなあ
内容がわからないけど、タイトル&宣伝文句&目次によれば

59:名称未設定
13/11/04 20:20:26.90 Mdzn2zzn0
>>57
URLリンク(dotinstall.com)

60:名称未設定
13/11/04 20:29:23.01 s2ci4qy40
wgetがデフォルトで入ってないので戸惑ったけど、
curl -Oで代用できるから困ってない。

自分でwgetインストールしなくてもこういう解法もある


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch