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/
319 名前:名無しさん@お腹いっぱい。 [2008/06/17(火) 10:25:04 ] #!/bin/csh -f set com=$0 if ($#argv < 1 || $#argv > 3) then echo Usage:$com start_line total_lines '[file_name]' exit 1 endif if ($#argv == 2) then set s=$1 set t=$2 tail +$s | head -$t else set s=$1 set t=$2 set f=$3 cat $f | tail +$s | head -$t endif exit 0 echo ------------------ これだとエラーがでます。どなたか改良してください。お願いします。
320 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/17(火) 10:35:51 ] >>319 以降はこちらへ ↓ csh初心者質問コーナー pc11.2ch.net/test/read.cgi/unix/1094041299/
321 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/17(火) 16:55:34 ] >>310 Solaris8 は標準では /dev/u?random はなかったはず。 Sun がパッチを配ってたので事実上あるような扱いだったけど。 Sol7 だとそれもなくて、フリーのデバドラをインストールしてた。
322 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/17(火) 16:58:56 ] すでにEOLですからw
323 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/23(月) 21:24:15 ] カンマ区切りcsvからhogeというカラムとその右4カラムを切り出したい ただしhogeが何カラム目にあるかは不定 というのはちょちょいとできないですか?
324 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/23(月) 21:33:07 ] フルスペックのcsvをシェルスクリプトで扱うのは荷が重い ちょちょいでは無理
325 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/23(月) 21:36:17 ] >>323 こういうことか? ↓ #!/bin/sh IFS=, while read line; do set $line while [ $# -gt 0 ]; do if [ "$1" = hoge ]; then echo "$1","$2","$3","$4","$5" break fi shift done done
326 名前:名無しさん@お腹いっぱい。 [2008/06/23(月) 22:09:52 ] 「,」を含む文字列で発狂するから駄目。
327 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/23(月) 22:53:43 ] ""ん中に改行まで入ることあるしな
328 名前:323 mailto:sage [2008/06/23(月) 22:57:51 ] >>325 おお完璧です どうもありがとうございます。 IFSってawkの変数かと思ってましたけど、shでも同じなんですね sh-3.2$ cat a.csv ,,,,,hoge,,1,11,3,3nd ,,,,,,,,,,,,,,,,,,,,,,,,,,,,hoge,,1,11,3,3nd ,,,,,1,fds,3,hnd ,g b,,,,,,hoge,,1,11,3 a ,,,,,,,,,,hoge,,1,13,d sh-3.2$ cat a.csv | ./kkkk hoge,,1,11,3 hoge,,1,11,3 hoge,,1,11,3 hoge,,1,13,d sh-3.2$
329 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/23(月) 23:00:57 ] 質問者が「おお完璧です」と言った後の >>326-327 が不憫。
330 名前:323 mailto:sage [2008/06/23(月) 23:02:39 ] >>326 >>327 さすがにそんなに意地悪な仕様ではないんで問題なしです。 欲を言うならシェルを作らず手で打てるレベルのものがいいなぁ・・というくらいです。
331 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/24(火) 11:26:40 ] シェルってゆうな。クズ。
332 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/24(火) 11:46:49 ] >>331 よう、久しぶりw 相変わらず怒ってんなあwww
333 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/24(火) 15:07:43 ] ゆうって言うな。クズ。
334 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/24(火) 15:11:50 ] シェルで発酵する方法まだーーーーーーーーーーー??????
335 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/24(火) 15:28:14 ] CPUヒートシンクの上に、藁に包んだ大豆を載せ while :;do :;done
336 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 07:27:59 ] FAN止めないと乾燥するな
337 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 07:35:42 ] 水冷にすればいいんじゃね?
338 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 11:45:53 ] hoge1.txt に日付のテキストが数百行あります。 ---------------------- $ cat hoge1.txt Fri, 16 May 2008 09:39:25 +0900 Sun, 18 May 2008 09:30:21 +0900 Mon, 02 Jun 2008 08:15:45 +0900 ---------------------- フォーマットを下記のように年月日のみに変えて hoge2.txt に書き出すシェルスクリプトを作りたいのです。 ---------------------- 2008.5.16 2008.5.18 2008.6.2 ---------------------- sed や awk を使うのか?ということまではわかってきたのですが、初心者なもので詰まってしまっています。どなたか ご教示お願いいたします。
339 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 11:50:21 ] ここでGNU date でやり方書くやつがでて、 Linux厨乙!的な流れですね、わかります。
340 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 11:51:01 ] GNU dateがあるとして、 while read x; do date --date="$x" '+%Y.%-m.%-d' done < hoge1.txt
341 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 11:51:34 ] Linux厨乙!
342 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:20:32 ] × …hoge2.txt に書き出すシェルスクリプトを作りたいのです。 ○ …hoge2.txt に書き出すシェルを発行したいのです。
343 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:21:46 ] BEGIN{ m["Jan"] = 1 m["Feb"] = 2 ... m["Dec"] = 12 OFS = "." } { print $4, m[$3], $2+0 }
344 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:27:11 ] >>343 それ間違ってるよ。動作確認してから書くこと。
345 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:47:44 ] はて、うちの手元では動いてるけど、環境依存な部分あるかな?
346 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:48:19 ] Mon,
347 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:51:31 ] >>344 うちでも動いてる。 >>346 Mon, は関係ないだろ
348 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 12:52:40 ] 月の名前と曜日の名前の区別がつかないんですね、わかります
349 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:02:27 ] で、そろそろ純正シェルでの解法を誰かが投稿する時間だな
350 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:08:17 ] >>338 本当に日付は >>338 のフォーマットしかないと限定していいの? だったら >>343 でも動くだろうけど、 中には、 Mon Jun 2 08:15:45 JST 2008 みたいな行もあるという仕様じゃないの? だったら、 (今のところ) >>340 が正解。
351 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:09:45 ] ずいぶん勝手な解釈だな。
352 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:11:05 ] #!/bin/sh month() { case "$1" in May) echo 5;; Jun) echo 6;; esac } cat <<END | Fri, 16 May 2008 09:39:25 +0900 Sun, 18 May 2008 09:30:21 +0900 Mon, 02 Jun 2008 08:15:45 +0900 END while read line do set -- $line echo $4.`month $3`.$2 done
353 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:13:38 ] ああ echo $4.`month $3`.`expr $2 + 0` かな。
354 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:15:05 ] いや、>>344 は、>>343 をシェルで実行しようとしたんじゃないだろうか? どこにも○○○だとは書かれてないから。
355 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 13:31:19 ] >>350 だったら、4桁数字だったら西暦、 2桁数字だったら日付、 Jan Feb等に一致したら月、 それ以外のフィールドは無視、というように 全フィールドをチェックすればできるな。
356 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 14:22:51 ] 338です。 あっという間にたくさんのレスが。ありがとうございます。 >>340 >>343 >>352 ありがとうございます。 #!/bin/sh の後に書いてやってみていますが、まだうまくいきません。 基本的な書き方がわかっていなさすぎなんでしょうね。 >>350 日付のフォーマットはこれだけ限定です。 過去スレ等、さらに読みに行ってきます。 本当に皆さんありがとう。
357 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 14:31:41 ] >>355 だったら ↓だな。 #!/bin/sh while read line; do for f in $line; do case $f in [0-3][0-9]) d=$f;; [1-2][0-9][0-9][0-9]) y=$f;; Jan) m=1;; Feb) m=2;; Mar) m=3;; Apr) m=4;; May) m=5;; Jun) m=6;; Jul) m=7;; Aug) m=8;; Sep) m=9;; Oct) m=10;; Nov) m=11;; Dec) m=12;; esac done printf '%d.%d.%d\n' $y $m $d done
358 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 14:43:10 ] 宗教的に問題ないなら GNU date 入れちゃいなよ。 便利だよ。
359 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 14:44:15 ] 宗教上の理由でそれは出来ません
360 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 14:46:23 ] ならしょうがない。
361 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 19:29:20 ] 輸血と献血とGNU date は家訓で禁じられてます
362 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 20:25:21 ] perlで我慢しる $ cat <<END | perl -ane 'use Date::Parse; $t = str2time($_); ($s,$m,$h,$d,$M,$y) = localtime($t); print $y+1900 . "." . $M . "." . $d . "\n"' Fri, 16 May 2008 09:39:25 +0900 Sun, 18 May 2008 09:30:21 +0900 Mon, 02 Jun 2008 08:15:45 +0900 END 2008.4.16 2008.4.18 2008.5.2
363 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 20:27:13 ] use Date::Parse; ($s,$m,$h,$d,$M,$y) = strptime($_); print $y+1900 . "." . $M+0 . "." . $d+0 . "\n";
364 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 21:12:11 ] >>362 純正シェルでの >>357 の回答の後にperl出しても意味ないなぁ。
365 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 22:43:18 ] perlやGNU dateの方が書式に寛容
366 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/25(水) 22:47:29 ] perlが入っててもDate::Parseが入ってない環境が多いから動かない環境が多い。
367 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/26(木) 01:57:12 ] 純正シェル(笑)
368 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/26(木) 02:04:04 ] シェルってゆうな。クズ。
369 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/26(木) 02:05:33 ] 貝殻
370 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/26(木) 02:12:50 ] ゆうなって言うなこのクズ
371 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/26(木) 03:07:08 ] 稲村
372 名前:265 mailto:sage [2008/06/26(木) 17:31:41 ] bashのshはシェルの略なので これからはbaと呼ぶことにします。
373 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/27(金) 10:24:30 ] 338、356です。 勉強始めたばかりで適切なスレを見つけるのもままならない。 質問した後に、スレ違いだったようだと反省している。 実はbashでやっているんだが・・・ってこれを最初に言うべきだったんだね。 皆さんにいただいたヒントでなんとかしようとさらに勉強するつもりだ。 ほんとに親切な人が多いスレで感激しているよ。 頑張ってみる。ありがとう。
374 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/27(金) 10:27:48 ] まだ出来てないのかよ。
375 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/27(金) 10:32:36 ] >>373 >>357 をコピペして、適当なファイルに保存(ファイル名hoge)する。 $ chmod +x hoge $ ./hoge < hoge1.txt 2008.5.16 2008.5.18 2008.6.2 ここまで書かないとわからなかったのかな? パーミッションとか、リダイレクトとか、./ を付けることとか、、
376 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/27(金) 10:36:14 ] パーミッションとかわからければ、テキストファイルとして保存して $ sh hoge < hoge1.txt でいいし。
377 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/27(金) 10:47:21 ] >>375 できましたっ! みんな、ありがとう!
378 名前:名無しさん@お腹いっぱい。 [2008/06/28(土) 16:35:09 ] ホストをIPに変換するシェルを発行する時、 getentを使いたいのですが、getentって純正シェルでも使えましたっけ? あと、他にgetentが使えないシェルはありますか?
379 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/28(土) 16:58:49 ] ホストの人かコンピューターをプロトコルに変換するシェルを開発されるスーパーハカーの方ですねわかります
380 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/28(土) 17:48:26 ] >>378 外部コマンドならシェルの種類は関係ないでしょ。
381 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/28(土) 18:18:22 ] zshではシェル関数になっていた > getent
382 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/28(土) 18:21:22 ] それは俺の知らないzshだ
383 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/28(土) 18:25:32 ] >>381 それは漏れの知らないzshだ
384 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/28(土) 18:27:34 ] ashでは not foundって言われた > getent
385 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/28(土) 18:31:13 ] /usr/share/zsh/4.2.6/functions/compaudit の中に [[ -x /usr/bin/getent ]] || getent() { if [[ $2 = <-> ]]; then grep ":$2:[^:]*$" /etc/$1 else grep "^$2:" /etc/$1 fi } と書いてあった。コマンド実体がない場合にちょー簡略版を定義してるのね。
386 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/28(土) 21:36:48 ] >>385 その定義だと、コロンで区切られてる前提になってるから、 passwdとgroupにしか使えないね。 (hostsには使えない)
387 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/28(土) 21:47:04 ] getent hostsって微妙だからな。 libresolv直接叩いているアプリも結構あるし。
388 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 03:08:38 ] 行中にIPアドレスらしき文字列が含まれていたら、それを出力するって こんな感じで問題ないですかね? もっと綺麗に書ける気もするが・・・ # 1行に1つしか含まれてないと仮定して問題なしです。 text='0.0 192.168.0.1 0.0' regex='[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*' echo "$text" | grep "$regex" | sed -e "s/.*[^0-9]\($regex\).*[^0-9]*/\1/"
389 名前:388 mailto:sage [2008/06/29(日) 03:13:28 ] 全然ダメだったorz 教えてください。
390 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 03:30:41 ] echo $text | grep -E -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' -oなんてオプション他のgrepにあるか知らないけど
391 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 09:32:03 ] >>388 grepとsedを一緒に使うのは無駄。sedだけでできる。 sed '/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/s//\1/'
392 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 09:34:43 ] すまん、-n p 忘れた。訂正。 sed -n '/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/s//\1/p'
393 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 09:35:43 ] sed -n 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/s//\1/p' の間違いだろ。初心者はもっと謙虚なレスを書きなさい。
394 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 09:38:27 ] >>392 それだと頭の数字が食われることがある。 ↓ sed -n '/[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/s//\1/p' とした方がいい。
395 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 09:40:50 ] だからぁ〜、sedはスレ違い。 >>393 は何を言いたいんだ? (392のあとで)
396 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 09:43:09 ] と言うか、>>393 の頭の 's/ の部分ですでにsed文法エラーじゃん。 初心者はちゃんと動作確認してから書きなさい。 >>394 が正解。
397 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 09:50:09 ] >>394 でも、 hoge123 192.168.123.45 みたいな入力があると失敗する。続きは sedスレでやってくれ。
398 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 09:52:24 ] sed -n '/.*\(\<[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\>\).*/s//\1/p' で改善されるか?
399 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 09:54:07 ] 模範解答の発行まだー??
400 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 10:04:16 ] 398 で桶
401 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 21:24:06 ] sed -n 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/p'
402 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/29(日) 21:44:44 ] >>401 >>397 の指摘で失格
403 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/30(月) 01:27:41 ] よほどパフォーマンスに差がありでもしないかぎり、 書き易く読み易いようにすればいい。
404 名前:388 mailto:sage [2008/06/30(月) 01:39:46 ] みなさま色々とありがとうございました。 >>398 ちゃんと処理できるみたいですし、このスレでも良い評価なので これを使ってあげようかと思います。感謝してください。 この処理は、あるとても重要な国家プロジェクトで使用されます。 コメントで Powered by 398 と入れておきますね。
405 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/30(月) 01:59:48 ] なわけねーだろ
406 名前:名無しさん@お腹いっぱい。 [2008/07/02(水) 17:31:55 ] 誰かお願いします。 wk=f 配列にa b c d とそれぞれ入ってるとして ループでぐるぐるっと、wkと一致するものを探したいんですが、 もし一致するものが無かった場合の終了条件って、どうしたらいいですか。
407 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/02(水) 17:41:16 ] 日本語でおk
408 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/02(水) 17:42:11 ] 純正シェルに配列はない。配列に相当する別の処理をしているなら、 その処理方法を明示して質問し直した方がいい。
409 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/02(水) 17:43:56 ] >>406 多少エスパーして回答。 ループにwhileを使うんじゃなくて、 forで配列の要素分ループすれば、たとえ一致するものが無かった場合でも ループはちゃんと終了するから問題なし。
410 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/02(水) 17:48:51 ] ループの返り値ってことなら、breakとかを使わん限り最後のコマンドの実行結果になるから、 ループの最後にfalseを置いとけばいいんじゃないかね。 成功した場合はbreakで抜ける、ということならば、だけど。
411 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/02(水) 17:51:11 ] >>406 の日本誤訳: 以下のようなシェルを発行しようとしたのですが、 もし一致するものが無かった場合、うまくいきません。 どうすればいいですか? #!/bin/bash wk=f array=(a b c d e) i=0 while [ ${array[i]} != $wk ]; do ((i++)) done
412 名前:名無しさん@お腹いっぱい。 [2008/07/02(水) 17:57:26 ] 皆様あざーっす! とりあえず今、KSHって何だって事から教わりました。怒鳴り含み。 ちょっと参考にして、考えます。皆暖かいアドバイスども!
413 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/02(水) 17:59:21 ] 突然何を言い出すんだ?
414 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/02(水) 18:08:51 ] キチガイ警報
415 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/02(水) 22:22:49 ] 作成したいファイル名が書かれたtxtのリストから、 ファイルを作成するにはどうすればよいでしょうか? たとえばテキストの中身に、 hoge foo bar とあったとして、 hogeとfooとbarというファイルを作成したいのです。
416 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/02(水) 22:34:11 ] >>415 touch $(cat txt)
417 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/02(水) 22:46:52 ] >>416 なんでこれでできるのかわからないですができました ありがとうございます
418 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/03(木) 02:22:28 ] >>416 それだと大量だった場合に引数溢れのエラーにならないかな?
419 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/03(木) 02:25:14 ] >>418 じゃあ cat txt | xargs touch