RHL9.0を使ってます。/var/spool/mail/以下に次のようなファイルがあったとします。
taro hanako daisuke yukie
また、/home/admin/user-name.txtというファイルには次のように書かれています。
taro
hanako
…
このとき、perlを用いて/var/spool/mailディレクトリからuser-name.txtに名前のない人のファイルを消去するというスクリプトを作りたいのですが。おそらくif
文を使うと思うのですがどうすればよいでしょう。$userという変数にuser-name.txtの一つ一つを代入してWhile文でまわすことはできてます。後は「$userという名前のファイルが/var/spool/mail以下になかったらsystem("rm /var/spool/mail/$user");を実行する。」とするだけです。
ちなみに、userdelを-rコマンドをつけずに消去された人たちのものが実際存在する人たちのものと混在しているため消したいと言うのが動機です。
No.1ベストアンサー
- 回答日時:
私が同じことをするなら,こんな感じでしょうか.
お題目:存在しないユーザーのmailスプールを削除したい.
#!/bin/bash
for file in /var/spool/mail/*; do
user=`basename $file`
if ! grep $user /etc/passwd ; then
rm -f $file
fi
done
ありがとうございます。試してみましたところ、ばっちり目的が果たせました。simple is bestなのでこっちを今後も使わせていただきます。
No.2
- 回答日時:
私もshの方が向いてると思いますが、一応Perl版も書いてみます。
$dir = '/var/spool/mail/';
open (IN,'/home/admin/user-name.txt');
$in{$_}++; while <IN>;
close (IN);
($in{$_} || unlink $dir.$_) while (glob $dir.'*');
#動くかどうかテストしてないのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Windows 10 【Windowsのquery=user:●●;date:先週から;ファイル操作ログの該 1 2023/05/23 18:45
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
- PHP php ログイン 1 2022/11/01 00:24
- UNIX・Linux AWSのEC2のZabbixユーザーでawscliコマンドが実行できない状態を解決する 1 2022/12/06 22:17
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
renameコマンドでファイル名か...
-
スラッシュ"/"を削除したい
-
UNIXで、ディレクトリを比較し...
-
○行目から□行目だけを表示する...
-
【DOSコマンド】for文の中で変...
-
コマンドプロンプトでUSBメモリ...
-
dosバッチを使用して昇順に
-
grep.exe と同じ機能をWindows...
-
euctosj を使用してファイル名...
-
標準出力とリダイレクトを同時...
-
Linuxで*をつかってファイル移...
-
バッチで特定文字が含まれる先...
-
Windowsコマンドラインで文字列...
-
DOSでテキストファイルの中のあ...
-
del
-
CentOS/リダイレクションに改行...
-
コマンドプロンプトでの結果を...
-
killコマンド実行時のメッセー...
-
フォルダ内のファイル名を取得する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
【Linux】findコマンドの表示順
-
【DOSコマンド】for文の中で変...
-
バッチで特定文字が含まれる先...
-
スラッシュ"/"を削除したい
-
Linuxで*をつかってファイル移...
-
CentOS/リダイレクションに改行...
-
renameコマンドでファイル名か...
-
UNIXで、ディレクトリを比較し...
-
○行目から□行目だけを表示する...
-
ファイルの先頭に文字を追加す...
-
unixのdiffコマンドの動作について
-
コマンドプロンプトでUSBメモリ...
-
ファイルリストを印刷したい。
-
コマンドプロンプト net user...
-
ショートカットのリンク先(フ...
-
標準出力とリダイレクトを同時...
-
scriptコマンドの文字化けについて
-
windows7でmingwのgrepで漢字の...
-
cshでfindした一覧をタイムスタ...
おすすめ情報