No.1ベストアンサー
- 回答日時:
#/usr/bin/csh
foreach f (*)
if (-f $f)
if (-z $f)
rm $f
endif
endif
end
動作確認していないので、実行前に
rm $f
の部分を
echo $f
にして、目的のファイルが処理されるか確認してから実行して下さい。
間違って必要なファイルを削除してしまっても責任は取れないので、実行は自己責任で。
この回答へのお礼
お礼日時:2003/12/11 13:50
ご回答ありがとうございました。
質問内容と変わってしまって申し訳ないのですが、Bシェルの場合は「foreach 」は使えないのですか?
No.2
- 回答日時:
こんにちは。
横入り失礼しますね。Bシェルの場合は「foreach」の代わりに「for」を使います。
下の方のスクリプトをBシェルで書き換えると以下のようになります。
for f in *; do
# 一行にまとめました。csh なら ( -f $f && -z $f ) になります
if [ -f $f -a ! -s $f ]; then
rm $f
fi # if の終わり
done
[ は組み込みまたは外部コマンドの「test」と同じです。
ファイルテスト演算子の話ですが、Cシェルの
「-z」(ファイルサイズ0のファイルで真を返す)はBシェルにはありませんので、
「-s」(サイズが0より大きいファイルで真になる)演算子を否定(!)して用います。
(Bシェルにも「-z」はありますが、後続の文字列の長さが0の時真になるものです)
下の方が「-f」をつけているのはディレクトリのときはスキップするためでしょう。
chie65536 さんの echo を使ったテクニックは私もよくやります。
危険なコマンドの前に echo を置いて、生成されたコマンド列が
望み通りになっているかチェックしますね。
Turbolinux 8 の tcsh ではうまくいかなかったのですが、
bash では複数行もヒストリに入りますので、最後に
^echo^
で余分な echo を取り除いて発進!です。
・C shell については
http://hp.vector.co.jp/authors/VA012953/unix/cs_ …
・Bourne shell の強化版 bash のマニュアル
http://www.linux.or.jp/JM/html/GNU_bash/man1/bas …
参考URL:http://homepage2.nifty.com/tashikatsu/script/she …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をfind.shとして、以下の条件をすべて満たすファ 1 2023/02/03 03:50
- Mac OS PATHを使ってcdなどで簡単に移動できるようになりたい 3 2023/05/13 14:22
- UNIX・Linux JSLinuxについて。 Linuxのこの手順のプログラミングは合っているでしょうか。 ①ホームディ 2 2022/06/20 15:33
- その他(開発・運用・管理) バッチファイルで特定のファイル・ディレクトリ以外を削除する方法について 4 2022/05/31 14:03
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- PostgreSQL PostgreSQLで"pg_dumpall -f data.sql"を使ってバックアップしたデータ 2 2022/09/19 08:14
- UNIX・Linux shellscript内のコマンドを、sudo(toor)として実行 2 2022/09/23 15:05
- ノートパソコン ソフトアンインストール残存ファイル 3 2022/09/13 18:15
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて 重複したものがあれば行を削除するとい 1 2023/02/27 18:49
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
batである文字列内に特定の文字...
-
シェルスクリプトの変数の制限?
-
【シェルスクリプト】whileルー...
-
シェルで and/or の優先順位に...
-
bashのスクリプト内で、パイプ...
-
Bシェル 文字列に含まれる特...
-
SONYの音楽ソフト「x-アプリ」...
-
iqoo neo 9と言うスマホがある...
-
windows10のごみ箱をrd /s /q C...
-
TOPコマンドで表示するCPU使用...
-
Dirコマンドでフォルダ内ファイ...
-
マウントしたUSBメモリに書き込...
-
自動パスワード入力でscpするス...
-
Linux環境 grepで改行コード(CR...
-
スクリプトのエラー「unexpecte...
-
VBAを使って電源を切るには?
-
Linux(Fedora)で外付けHDDが...
-
【Gmailコマンド】1年以上前の...
-
bashでシングルクォート内の変...
-
IPアドレスだとPingが通るのに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batである文字列内に特定の文字...
-
スクリプト中のexportコマンド...
-
bashスクリプト
-
シェルスクリプトの変数の制限?
-
Bシェル 文字列に含まれる特...
-
shellスクリプトから別のshell...
-
if文について
-
シェルスクリプトでうるう年判定
-
シェルで and/or の優先順位に...
-
exprで四則演算をする際に変数...
-
ファイルから文字列を読み込む...
-
kshでのNULLの比較
-
cshの条件式について教えてくだ...
-
【sh】tee コマンドの代替方法
-
Cシェルで標準エラー出力への...
-
sh スクリプト ipアドレス形式...
-
UWSCについて
-
【シェルスクリプト】whileルー...
-
awk スクリプト内で、関数の出...
-
ログインシェル時のSHELL環境変数
おすすめ情報