- 1 名前:名無しさん@お腹いっぱい。 mailto:sageteoff [2015/08/14(金) 23:42:01.51 .net]
- シェルスクリプトの総合スレです。
□お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。 FreeBSDユーザは/bin/shの正体がashなので注意。 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。 src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/ heirloom.sourceforge.net/sh.html ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) ・シェルスクリプトのことをシェルってゆーな □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも awkまたはperlの方が適した処理にはそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 □回答者への注意事項: ・シェルスクリプトでの処理方法を質問しているのに、よくわからずに 「そういうのはperl使いましょう」と回答するのはやめましょう。 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。 前スレ シェルスクリプト総合 その24 peace.2ch.net/test/read.cgi/unix/1415634843/
- 659 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/12(日) 11:44:06.36 .net]
- >>645
for input in $(ls -1 *.{wav,mp4,avi,mpeg,mpg} 2>/dev/null) do (処理) done とか。
- 660 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/12(日) 11:52:44.28 .net]
- >>648
これじゃダメな場合があるんだっけ? for input in *.wav *.mp4 *.avi *.mpeg *.mpg do 〜 done
- 661 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/12(日) 12:07:38.74 .net]
- .wavファイルがないとinputには"*.wav"がそのまま入る
だけど、ループの中で処理する時に [ -f "$input" ] || continue とでもしとけばいいよね
- 662 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/12(日) 12:36:44.21 .net]
- >>648
>>650 なるほど、そういう方法がありましたか。 ありがとうございますm(_ _)m >>649 >>650さんのご指摘通りその拡張子のファイルが無いとそのまま入っちゃうって問題がありますね
- 663 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/13(月) 20:14:40.91 .net]
- テキストファイルの最終行に改行がないときだけ
改行を追加するようなスクリプトってどう書けばいいでしょうか?
|

|