トップページunix
1001コメント312KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001うはwwwww2006/03/26(日) 00:56:22
シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。
まずは注意点、リンク、地鎮祭など(>>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 でトレースしましょう。
05925912006/06/17(土) 16:01:10
>589
実はあのままだと怒られるパターンがあるが、詳しく書かないでおく。
0593名無しさん@お腹いっぱい。2006/06/17(土) 17:04:33
>>591
Solarisの findには -maxdepthオプションがないというのがオチ。

あと、シェル変数を " " してないから、いろいろ危ない。
0594名無しさん@お腹いっぱい。2006/06/17(土) 17:23:24
1 find でディレクトリの一覧を得る find . -type d > a
2 find でディレクトリ以外の一覧を得る find . ! -type d > b
3 2 で得られたものから、dirname の一覧を作る
cat b | sed 's,/[^/]*$,,' > c1
cat c1 | sed 's,/[^/]*$,,') > c2
以下、最も深い階層回繰り返し。
4 1 にしか含まれないものを創る cat a c1 c1 c2 c2 ... |sort |uniq -u
0595名無しさん@お腹いっぱい。2006/06/17(土) 19:13:07
俺なら、指定されたディレクトリが条件を満たすかどうか調べるコマンドを作って、
それを find から -exec で起動するかな
0596名無しさん@お腹いっぱい。2006/06/17(土) 19:43:52
ls -aRF | awk '/:$/{d=$0;next}NF==0{if(!f)print d;f=0;next}!/\/$/{f=1}'

ディレクトリの末尾に余計なコロンがついてるが気にするな。
最上位のディレクトリだけはディレクトリだけあってファイルがひとつもなくても
結果に出てこないがそれ以外は正しいはず。目視で確認してくれ。
改行コードを含むディレクトリだとかコロンで終わるファイルとかあると
おかしな結果になるがそれ以外は正しいはず。そんなファイルを作るな(w
0597名無しさん@お腹いっぱい。2006/06/17(土) 20:22:53
>593
あと、サ(ry
0598名無しさん@お腹いっぱい。2006/06/17(土) 20:39:00
du
でいいじゃん
0599名無しさん@お腹いっぱい。2006/06/18(日) 00:04:44
>>598
だめだろ。duじゃディレクトリが空か判定できんぞ。
0600名無しさん@お腹いっぱい。2006/06/18(日) 00:20:51
rmdir しまくれば?
0601名無しさん@お腹いっぱい。2006/06/18(日) 00:58:37
反則技
rsync -avn
find
diff
0602名無しさん@お腹いっぱい。2006/06/18(日) 06:21:08
>>599
使用ファイルサイズで分かる。
0603名無しさん@お腹いっぱい。2006/06/18(日) 06:45:04
>591
あ、-maxdepthなんか無い方が目的に適うことに気づいてしまったw
0604名無しさん@お腹いっぱい。2006/06/18(日) 20:05:24
>>602
いや、わからないですね。
ディレクトリ内のファイルの作成削除の履歴&OSによるディレクトリ管理の方法によっては、
ファイルが全くなくてもディレクトリのサイズが巨大になる場合がありえるものなんです。
0605名無しさん@お腹いっぱい。2006/06/19(月) 16:52:37
シェルスクリプト内で外部プログラムを呼び出したとき、
メモリ制限やプロセス数制限でプロセス生成に失敗すると、
シェルスクリプト本体が終了してしまいますが、
終了させずに次の行へ処理を進める方法はありますか?
一定時間ウェイトしてから、リトライさせたいのですが…
0606名無しさん@お腹いっぱい。2006/06/19(月) 17:13:55
>>604
サンプル希望
0607名無しさん@お腹いっぱい。2006/06/19(月) 17:41:23
>>606
FAT
0608名無しさん@お腹いっぱい。2006/06/19(月) 17:51:34
>>606
$ uname -a
FreeBSD xxx 7.0-CURRENT FreeBSD 7.0-CURRENT #13: Tue May 9 14:37:19 JST 2006 xxx i386
$ mkdir /tmp/testdir
$ ls -ld /tmp/testdir
drwxr-xr-x 2 xxxx xxxx 512 Jun 19 17:40 /tmp/testdir
$ for f in $(jot 1000);do touch /tmp/testdir/$f;done
$ ls -ld /tmp/testdir
drwxr-xr-x 2 xxxx xxxx 12288 Jun 19 17:41 /tmp/testdir
$ rm /tmp/testdir/*
$ ls -ld /tmp/testdir
drwxr-xr-x 2 xxxx xxxx 12288 Jun 19 17:41 /tmp/testdir

他人にサンプル要求してるんだから「使用ファイルサイズで分かる」サンプルも提示しろよ。
0609名無しさん@お腹いっぱい。2006/06/19(月) 19:36:34
>>608
Linuxなんだけど
$mkdir -p /tmp/testdir/test{1,2}
$for aa in `seq 10`; do mkdir /tmp/testdir/test1/aa$aa; done
$du -b /tmp/testdir/ |sort -nr
53248 /tmp/testdir
45056 /tmp/testdir/test1
4096 /tmp/testdir/test2
4096 /tmp/testdir/test1/aa9
4096 /tmp/testdir/test1/aa8
4096 /tmp/testdir/test1/aa7
4096 /tmp/testdir/test1/aa6
4096 /tmp/testdir/test1/aa5
4096 /tmp/testdir/test1/aa4
4096 /tmp/testdir/test1/aa3
4096 /tmp/testdir/test1/aa2
4096 /tmp/testdir/test1/aa10
4096 /tmp/testdir/test1/aa1
空のディレクトリは最小サイズだよ。
0610名無しさん@お腹いっぱい。2006/06/19(月) 20:03:50
そこで、
touch /tmp/testdir/test2/hoge
してファイルを作成してみるとどうなるか。
0611名無しさん@お腹いっぱい。2006/06/19(月) 20:06:56
>>608
おんなじことを Linux-2.4.20 で追試させてもらった。
やっぱ同様にファイルが1つもないのに/tmp/testdirが12288と大きいままだったわい。
0612名無しさん@お腹いっぱい。2006/06/19(月) 23:40:21
>>609
空じゃないディレクトリでも最小サイズだな。
もっとも真に空のディレクトリが存在したらファイルシステムが壊れているという事だけど。

$ mkdir /tmp/testdir
$ ls -ld /tmp/testdir
drwxr-xr-x 2 xxxx xxxx 4096 Jun 20 00:54 /tmp/testdir
$ touch /tmp/testdir/1
$ ls -ld /tmp/testdir
drwxr-xr-x 2 xxxx xxxx 4096 Jun 20 00:54 /tmp/testdir
0613名無しさん@お腹いっぱい。2006/06/20(火) 00:05:48
ファイルシステムによるよ。
linux の reiserfs3 だと
mkdir a
drwxr-xr-x 2 xxxx xxxx 48 Jun 20 00:03 a/
touch a/hoge
drwxr-xr-x 2 xxxx xxxx 72 Jun 20 00:03 a/
rm a/hoge
drwxr-xr-x 2 xxxx xxxx 48 Jun 20 00:03 a/
06146042006/06/20(火) 00:31:51
>>613
おっしゃるとおりです。OSとか「ファイルシステムによる」わけです。
だから、そういうことに依存したスクリプトは書いてはいけないでしょう。

最低限、>>598,602のような表明には、「XXXファイルシステムとか△△△OSでは」
という条件を付さねばならなかったわけです。
06156042006/06/20(火) 00:34:20
うっ、でも今回の場合環境がSolarisと決まってたんだっけ。(>>579)

ニゲヨット。
0616名無しさん@お腹いっぱい。2006/06/20(火) 00:42:59
>>613に一俵。Solarisだけど、ufs(logging付き)では
% ls -ld
drwxr-xr-x 2 xxxx users 512 Jun 20 00:38 .
% touch `yes '' | head -1000 | cat -n` ; ls -ld
drwxr-xr-x 2 xxxx users 12288 Jun 20 00:38 .
% rm * ; ls -ld
drwxr-xr-x 2 xxxx users 12288 Jun 20 00:38 .

みたいにサイズが戻らないけど、swapfs(仮想メモリディスク)上だと

% ls -ld
drwxr-xr-x 2 xxxx users 117 Jun 20 00:37 .
% touch `yes '' | head -1000 | cat -n`; ls -ld
drwxr-xr-x 2 xxxx users 60010 Jun 20 00:37 .
% rm *; ls -ld
drwxr-xr-x 2 xxxx users 117 Jun 20 00:37 .

みたいに元に戻る。
0617名無しさん@お腹いっぱい。2006/06/20(火) 10:41:17
割り込んですみません
>608 の jot って coreutils ( sh-utils だった ?) の seq みたいなのですか ?
0618名無しさん@お腹いっぱい。2006/06/20(火) 11:08:27
>>617
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=jot&dir=jpman-5.4.0%2Fman§=0
0619名無しさん@お腹いっぱい。2006/06/20(火) 11:09:14
>>617
そうです。
JOT(1) FreeBSD General Commands Manual JOT(1)
NAME
jot -- print sequential or random data
SYNOPSIS
jot [-cnr] [-b word] [-w word] [-s string] [-p precision]
[reps [begin [end [s]]]]
0620名無しさん@お腹いっぱい。2006/06/20(火) 12:02:34
わかりくいコマンド名だな
0621名無しさん@お腹いっぱい。2006/06/20(火) 12:20:58
>618-819 ありがとうございました。
0622名無しさん@お腹いっぱい。2006/06/20(火) 12:22:19
↑ 訂正
>618-619 ありがとうございました。
0623名無しさん@お腹いっぱい。2006/06/20(火) 13:29:03
The name jot derives in part from iota, a function in APL.
だそうだ。
0624名無しさん@お腹いっぱい。2006/06/20(火) 19:34:24
hoge.txt というファイルが存在したらメールで知らせる、
というシェルスクリプトきぼんぬ
0625名無しさん@お腹いっぱい。2006/06/20(火) 19:44:01
if [ -e hoge.txt ];then
echo hoge|mail aho
fi
0626名無しさん@お腹いっぱい。2006/06/20(火) 20:00:15
>>625
$ [ -e hoge.txt ]
test: argument expected
$ uname -sr
SunOS 5.10
0627名無しさん@お腹いっぱい。2006/06/20(火) 21:46:25
>>626
そりゃ、SunOSみたいな古いOSじゃ動かないかもね。Solaris使えよ。
0628名無しさん@お腹いっぱい。2006/06/20(火) 22:09:18
>>627
お前、それがとても恥ずかしい発言だってわかってる? 晒し上げ www
0629名無しさん@お腹いっぱい。2006/06/20(火) 22:24:25
>>627
0630名無しさん@お腹いっぱい。2006/06/21(水) 08:49:43
>>627 は未来人。詳しくは禁則事項なので言えませんが
0631名無しさん@お腹いっぱい。2006/06/21(水) 08:58:58
結局、一番恥ずかしいのは >>628 ってことでFA。
0632名無しさん@お腹いっぱい。2006/06/21(水) 09:54:48
>>627 wwwww
0633名無しさん@お腹いっぱい。2006/06/21(水) 10:32:01
>>627
pgr
0634名無しさん@お腹いっぱい。2006/06/21(水) 10:49:16
おまえら、>>630 をよく見ろ。未来(今後)に何かあるらしいぞ。
>>627 を笑うものの方が逆に恥ずかしいみたいだから。
0635名無しさん@お腹いっぱい。2006/06/21(水) 15:39:16
>>627の人気に禿しく嫉妬
0636名無しさん@お腹いっぱい。2006/06/21(水) 16:59:40
URIエスケープをシェルスクリプト中でやるのって
sedで地道にやる以外になんかカッコイイのない?

echo -n "ほげ" | od -t x2 -A n | tr -d ' ' | sed 's/\([0-9a-z][0-9a-z]\)\([0-9a-z][0-9a-z]\)/%\2%\1/g'
↑はどっかで拾ってきたやつだけど、
変換しなくていい文字とか、スペースと+の変換とかまで考慮したのを
スマートに誰か書いてちょーだい
0637名無しさん@お腹いっぱい。2006/06/21(水) 17:13:38
>>636
それ以前に、その拾ってきた奴というのがバイトオーダーの問題で
環境によっては動かないはずだが。
0638名無しさん@お腹いっぱい。2006/06/21(水) 17:20:10
>>636
RubyかPerlでやれば?
0639名無しさん@お腹いっぱい。2006/06/21(水) 19:42:56
Solaris10=SunOS5.10
Solaris9=SunOS5.9
Solaris8=SunOS5.8
Solaris7=SunOS5.7
0640名無しさん@お腹いっぱい。2006/06/21(水) 19:49:59
solaris11$ uname -sr
Solaris 11
0641名無しさん@お腹いっぱい。2006/06/21(水) 20:15:43
Solaris11$ uname -sr
Linux 2.4
0642名無しさん@お腹いっぱい。2006/06/21(水) 20:41:14
Ruby >>>>>>>> シェル
0643名無しさん@お腹いっぱい。2006/06/21(水) 21:14:47
典型的なrubyデブロッパー
ttp://jp.rubyist.net/magazine/?0001-NoraTutorial#l10
0644名無しさん@お腹いっぱい。2006/06/21(水) 21:54:47
$ uname -sr
Darwin 8.6.2
0645名無しさん@お腹いっぱい。2006/06/21(水) 22:27:13
下請けにシェルスクリプトの作成を発注する予定です

放っておくとtcshのシェルスクリプトを書くような連中なので
tcsh/csh/zshのシェルスクリプトは禁止する予定なのですが、
ターゲットはSunOSなので放っておくとbash固有の機能を使いかねません。

ボーンシェルのシェルスクリプトの仕様を提示したいのですがどこかにあるでしょうか?
0646名無しさん@お腹いっぱい。2006/06/21(水) 22:57:51
ボーンシェルって何ですか? Bourneシェルとは違うものですよね?
0647名無しさん@お腹いっぱい。2006/06/21(水) 23:04:57
>>645
マシンも環境も同じにするのがプロの発注。
0648名無しさん@お腹いっぱい。2006/06/21(水) 23:25:53
俺の経験上ヘボな奴ほどcshスクリプトを書く割合が多い。
理由はわからぬ。
0649名無しさん@お腹いっぱい。2006/06/21(水) 23:34:17
仕様を提示したところでそんな連中が仕様に従うはずない。
現物(マシン+OS+sh)を貸し出してこれで動くようにしろ、
というのが確実。

で、cshで書いてしまうような外注は捨てて、
もっとマシな所に発注するのがもっとも確実。
06506452006/06/21(水) 23:40:59
下請けの技術レベルが低いのはそのとおりですが、
元請の弊社は発注元と下請けの間の調整もせず勝手にやってというのが
基本姿勢のクズ会社なのでどっちもどっちなのです。

ポータビリティは考えずに、動作するコーンシェルのバージョンを指定しようと思います。
0651名無しさん@お腹いっぱい。2006/06/22(木) 00:12:29
opengroup.orgに転がってるPOSIXのシェルの仕様でも渡したらどうよ?
…英語の仕様書が読めるわけもないか。
0652名無しさん@お腹いっぱい。2006/06/22(木) 04:08:14
下請けより645のレベルが心配
0653名無しさん@お腹いっぱい。2006/06/22(木) 09:36:23
>>648
ヘボじゃない奴はcshではスクリプト書きにくいのにすぐ気がついて書かなくなるから
当然の帰結じゃないか。
0654名無しさん@お腹いっぱい。2006/06/22(木) 09:44:09
ヘボじゃあに香具師が、foreach使いたいからcsh script
を使っているのはみたことがある。
0655名無しさん@お腹いっぱい。2006/06/22(木) 11:57:13
cshはいろいろヘボいけど、それを使いこなしてこそ熟練者
cshは恐くない
0656名無しさん@お腹いっぱい。2006/06/22(木) 12:00:51
俺はまんじゅうが恐い
0657名無しさん@お腹いっぱい。2006/06/22(木) 12:14:55
cshはいろいろヘボいので、それを廃絶してこそ熟練者
cshはUNIXの汚点
0658名無しさん@お腹いっぱい。2006/06/22(木) 12:47:42
>>655
それはチューリングマシンでCGIを書くことに匹敵するほど実りの無いこと。
0659名無しさん@お腹いっぱい。2006/06/22(木) 15:19:23
645はkshしらんの?
Solarisからむなら普通ksh
0660名無しさん@お腹いっぱい。2006/06/22(木) 15:21:57
>>659
>>650


ただし、「kshの同じバージョン」はSolaris以外では用意できないと思われ。
Linuxにあるksh(pdkshじゃなくてkshだよ)は、Solarisのkshとは
結構動作が違う。
0661名無しさん@お腹いっぱい。2006/06/23(金) 22:15:00
Linuxのkshがどうだろうと、Solarisで開発すればいいのでは
いまの下請けはLinux で開発すんの?
0662名無しさん@お腹いっぱい。2006/06/23(金) 22:26:58
そりゃ、Solarisみたいな古いOSじゃ動かないかもね。Linux使えよ。
0663名無しさん@お腹いっぱい。2006/06/23(金) 23:08:39
OpenSolarisから持ってくればいいんじゃない?
0664名無しさん@お腹いっぱい。2006/06/28(水) 17:24:43
2行以上連続する空行を1行に縮めるにはどうすればいいですか?
0665名無しさん@お腹いっぱい。2006/06/28(水) 17:32:07
cat -s
0666名無しさん@お腹いっぱい。2006/06/28(水) 17:43:33
>>665
できました. でも質問が間違ってました. 改めて
2行以上連続する空行は1行に縮め,
1行だけの空行はその行を削除するにはどうすればいいですか?
0667名無しさん@お腹いっぱい。2006/06/28(水) 18:03:34
awk '/^$/{if(++n==2){print}next}{print;n=0}'
0668名無しさん@お腹いっぱい。2006/06/28(水) 19:35:20
できました. ありがとうございます.
0669名無しさん@お腹いっぱい。2006/06/29(木) 21:00:43
>>666
sed -e "N; s/\n$//; /^$/{N; /^\n$/D;};"
0670名無しさん@お腹いっぱい。2006/06/29(木) 23:09:01
webサイトのサムネイル画像から画像本体を取り出そうとしてまして
アドレスの一部、"thumb” を "src" に。数字の最後の ”s”を除去
あとバナー除去のために、"thumb” を含まないアドレスを削除しようと考えています

http://xxx/thumb/1585427411s.jpg から
http://xxx/src/1585427411.jpg
http://xxx/ad/bar_1.jpg ←バナー画像

/bin/sh
sed 's/thumb\/(\d+)s/src\/$1/'

で置換はできたと思ったのですがうまくいきません。
sed 's/thumb/src/' のように単純な置換だとうまくいきます
バナー画像に関しては行の削除がわかりません
文法間違えてたりしますか?アドバイスお願いします

OSXのAutomatorでやってます
0671名無しさん@お腹いっぱい。2006/06/29(木) 23:15:49
/thumb/d
0672名無しさん@お腹いっぱい。2006/06/29(木) 23:20:48
s@thumb/\([0-9]*\)s@src/\1@
0673名無しさん@お腹いっぱい。2006/06/29(木) 23:23:33
このディレクトリのこんなかんじの名前のファイルがあったらこの処理をするってシェルスクリプトってどう書くのかなぁ

-----------
cd /root/work
if [ -f abc* ]; then
処理1
else
処理2
fi
-----------

こんな感じのやつ。
でも、こんなワイルドカードの使い方ってだめなんでしょ?
0674名無しさん@お腹いっぱい。2006/06/29(木) 23:38:52
>>673
ちょっとしかないなら
if ls abc* >/dev/null 2>&1; then
でどう?

マッチするファイルが何万個もある可能性のある状況で
正しく動くのを作るのはちと複雑かも
0675名無しさん@お腹いっぱい。2006/06/29(木) 23:38:58
>>672
綺麗に置換できました。ありがとお
0676名無しさん@お腹いっぱい。2006/06/29(木) 23:40:11
>>669
うちのFreeBSD 4.11-RELEASEの/usr/bin/sedだとうまく動かん。
あわててcygwinのGNU sedで試したら動いた。
こんなのうちだけか?
sedの何かって環境依存なのかな???(ファイル末のNの振る舞いとかか?)

ちなみに上の「動かん」ってのをkwsk書くと:
・入力が1行のみの時、それが空行かどうか関係なく、出力が全く空。(wcに渡すと0バイト)。
・ファイル末に連続する空行があった時、それに対応して出力されるべき1行の空行がでない。
(つまり出力の最後は空でない行になっている)
06776732006/06/29(木) 23:49:24
>>674
ありがと。やってみるよ。

最近、シェルスクリプト書かなきゃならないところに異動になって困ってるんだ。
また助けてね。
0678名無しさん@お腹いっぱい。2006/06/29(木) 23:58:10
その給料の何%かで助けるよ
0679名無しさん@お腹いっぱい。2006/06/30(金) 15:52:08
>>676
BSDのsedとGNUのsedとは当然違います。
前者は古きよきBSDの雰囲気を留めているが、後者は独自に機能拡張してる。
0680名無しさん@お腹いっぱい。2006/07/01(土) 15:44:05
もしそうなら全然上げないBSDの方が独自だと思うぞ。
何をもって独自と断定するかは難しいが。
0681名無しさん@お腹いっぱい。2006/07/06(木) 12:02:41
DSCN0001.jpg〜DSCN9999.jpgのファイルを全てtravel2006GW0001.jpg〜travel2006GW9999.jpgに変更したいのですが
これを実現するLinuxのシェルスクリプトはどう記述したらいいですか?
それと
travel2006GW0001.jpg
travel2006GW0002.jpg



のようにtxtに打ち出すのもお願いします

0682名無しさん@お腹いっぱい。2006/07/06(木) 12:15:49
mv DSCN0001.jpg travel2006GW0001.jpg
mv DSCN0002.jpg travel2006GW0002.jpg
〜(以下同様に9999まで)

echo travel2006GW0001.jpg >foo.txt
echo travel2006GW0002.jpg >>foo.txt
〜(以下同様に9999まで)

2以降は'>>'なのに注意せよ。
0683名無しさん@お腹いっぱい。2006/07/06(木) 12:22:40
ちょw
0684名無しさん@お腹いっぱい。2006/07/06(木) 12:26:59
>>681
rename DSCN travel2006GW DSCN*
0685名無しさん@お腹いっぱい。2006/07/06(木) 12:34:15
>>681
マジレスするよ。
Linuxのシェルということはbashでいいんだよね。
だったら↓

#!/bin/bash

rm -f list.txt

for ((n=1; n<=9999; n++)) {
 nnnn=`printf %04d $n`
 mv DSCN$nnnn.jpg travel2006GW$nnnn.jpg
 echo travel2006GW$nnnn.jpg >> list.txt
}
0686名無しさん@お腹いっぱい。2006/07/06(木) 12:50:27
マジレスうれしぃ!
0687名無しさん@お腹いっぱい。2006/07/06(木) 13:30:19
>>682
こういうのを自動生成しちゃって実行する方が
楽なときもあるな。
実際に何が行なわれてるかわかりやすいし。
0688名無しさん@お腹いっぱい。2006/07/06(木) 13:33:29
>>687
その自動生成スクリプトも >>685 をちょっと改造すればできる
0689名無しさん@お腹いっぱい。2006/07/06(木) 13:42:15
>>687
あーそういうのよくやる。俺の場合だと

awk 'END{for(i=1;i<=9999;i++){printf "mv DSCN%04d.jpg travel2006GW%04d.jpg\n",i, i}}' /dev/null|less

とかやって確認してから

awk 'END{for(i=1;i<=9999;i++){printf "mv DSCN%04d.jpg travel2006GW%04d.jpg\n",i, i}}' /dev/null|sh

だな。mvの起動回数とか考えると何回も使うものならperlか何かでちゃんと書くけど、
1回限りのワンライナーだと確認しながらやれるのでこの方が安心できる。
0690名無しさん@お腹いっぱい。2006/07/06(木) 13:44:31
>>685
list.txtはわざわざスクリプトで作らなくても、名前の付け替えがすんだら
lsの出力をファイルに書き出せばいいだけじゃないか。
0691名無しさん@お腹いっぱい。2006/07/06(木) 13:49:13
>>687-690

http://pc8.2ch.net/test/read.cgi/tech/1112553783/299-301
> もう用済みじゃぼけぇwww
だそうですよ。
■ このスレッドは過去ログ倉庫に格納されています