それでは、cat、grep、sed、bashのすべての力を手に取り、小さくても非常に便利なスクリプトを書きましょう。
導入語
あなたはおそらくたくさんの豚を飼っています。 ディスクに蓄積されたすべての良いものをそれらにマージするためにそれらを使用しています:私が愛するシンプソンズと私が聞いているポッドキャストから、単に嫌なラップ「Syavaラッパー」を聴いています。お金は、DVDディスク上の塗りつぶされたセクターの形で物質的な具体化を持っていました。
しかし、何百枚ものディスクの中から何かを見つけるのは非常に難しいので、「カタログ作成者」が助けになります。 長い間、私は既存の個人のインスタンスを見てきましたが、最終的には気づきました-違います! ディスクを追加するコマンドと検索するコマンドが必要です。 guiaが手元にない可能性があるので(gui)は必要ありませんが、ドライブを見つける必要があります。ブナの電源を入れたくない、ベース付きのUSBフラッシュドライブをルーターに挿入し、sshでアクセスして必要なドライブを見つけます私はそれを友人に渡しますが、フラッシュが既に共有されている場合は、一般的に優れています。
プレリュードは終了しましたが、今は小さなコードです。
ここで、入力したスクリプト全体を紹介します-それはばかげている点まで簡単です。その後、その作業の重要な点を説明します。
#!/bin/bash
#special for habra-users from [rk] (rapkasta on habrahabr.ru)
dbDir="/home/rap-kasta/Documents/cdvdm-article/db/"
if [ $# -lt 1 ]; then
echo " ..."
exit 1
fi
case "$1" in
"add" )
echo " "
if [ $# -ne 3 ]; then
echo " "
fi
find $2 > "${dbDir}${3}"
;;
"find" )
echo " "
if [ $# -ne 2 ]; then
echo " "
fi
grep -H -i -P "${2}" ${dbDir}*|sed "s|${dbDir}||"
;;
"help" )
echo ". :"
echo "1) : add __ _"
echo "2) (): find _"
;;
* )
echo " $1"
;;
esac
それでは、ポイントを見ていきましょう。
ディスクベースはどのように見えるか
すべてが非常に単純です。 ベースはスクリプトの先頭に示されている個別のディレクトリ です。ディレクトリ内のファイルはディスクの名前に対応する名前のディスクであり、ファイルの内容はディスクのファイルツリーです 。
したがって、ハンドルによってディスクを削除および「編集」する機能がありますが、本当に必要な場合は、削除および編集機能をスクリプトに直接追加できます。rmの作成やお気に入りのテキストエディターへのクエリは、ファイルを追加するのと同じくらい簡単です。
ファイルを追加する
素晴らしい強力な検索プログラムを使用します。余分なものを指定しない場合は、ディレクトリ内のすべてのファイルを喜んで提供します。
find ___ > __
すでにわかったように、ディスクデータベース内のファイルの名前はディスクの名前です。 健全な論理に従って、ドライブの名前には違法なもの(スラッシュ、および主観的な状況により、スラッシュ( "|"))を含めるべきではなく、ドライブに固有でなければなりません 。 「German Classics」という名前のディスクがたくさんある場合は、これらすべてのディスクを山積みにして、それぞれの名前にシリアル番号を追加できます:「German Classics#67」。
ディスクを追加した後、スタック/遠くに投げられ、数か月後に突然必要になります。 真実はすでに「その中に」忘れられています。
ファイル検索
私と同じように、グルーニングの作品に感謝し、突然彼のスメシャリコフの第18シーズン全体をレビューしたいとします。 これにはmplayerが必要ですが、最初にこれらの同じラウンドモンスターをどこに投げたかを見つけます。find コマンドはこれに役立ちます。
find -H -i -P _ _
正規表現を使用するために、検索クエリに-Pを追加し、 -Hは必要なサブストリングが見つかったファイルの名前を表示し、 -iはクエリの大文字と小文字を区別しません。
マイナスがあります:出力では、findは見つかったファイルへのフルパスを表示するため、データベースへの絶えず繰り返されるパスを削除する必要があります 。これは、お気に入りのテキストエディターSEDで役立ちます。
echo "-"|sed 's// /'
ご覧のように、個別のキーと修飾子は使用しません-sedは行ごとに検索します。これが必要です。
そうそう、Smeshariki ...
[rap-kasta@acerAspire cdvdm-article]$ ./cdvdm.sh find 'Simpsons(.+)18(x|e)(.+)\.(avi|srt)'
Archive #10:/media/cdrom/Simpsons/The Simpsons [18x07] Ice Cream Of Margie With The Light Blue.avi
Archive #10:/media/cdrom/Simpsons/The Simpsons [18x08] The Haw-Hawed Couple.avi
Archive #10:/media/cdrom/Simpsons/The Simpsons [18x09] Kill Gil - Vols. 1 And 2.avi
Archive #10:/media/cdrom/Simpsons/The Simpsons [18x10] The Wife Aquatic.avi
Archive #10:/media/cdrom/Simpsons/The Simpsons [18x11] Revenge Is A Dish Best Served Three Tim.avi
Archive #10:/media/cdrom/Simpsons/The Simpsons [18x12] Little Big Girl.avi
Archive #10:/media/cdrom/Simpsons/The Simpsons [18x13] Springfield Up.avi
Archive #10:/media/cdrom/Simpsons/The Simpsons [18x14] Yokel Chords.avi
Archive #10:/media/cdrom/Simpsons/s18e07.srt
Archive #10:/media/cdrom/Simpsons/s18e08.srt
Archive #10:/media/cdrom/Simpsons/s18e09.srt
Archive #10:/media/cdrom/Simpsons/s18e10.srt
Archive #10:/media/cdrom/Simpsons/s18e11.srt
Archive #10:/media/cdrom/Simpsons/s18e12.srt
Archive #10:/media/cdrom/Simpsons/s18e13.srt
Archive #10:/media/cdrom/Simpsons/s18e14.srt
Archive #9:/media/cdrom/Simpsons/s18e06.srt
Archive #9:/media/cdrom/Simpsons/s18e05.srt
Archive #9:/media/cdrom/Simpsons/s18e04.srt
Archive #9:/media/cdrom/Simpsons/s18e03.srt
Archive #9:/media/cdrom/Simpsons/s18e02.srt
Archive #9:/media/cdrom/Simpsons/s18e01.srt
Archive #9:/media/cdrom/Simpsons/The Simpsons [18x06] Moe 'N' A Lisa.avi
Archive #9:/media/cdrom/Simpsons/The Simpsons [18x05] GI (Annoyed Grunt).avi
Archive #9:/media/cdrom/Simpsons/The Simpsons [18x04] Treehouse Of Horror XVII.avi
Archive #9:/media/cdrom/Simpsons/The Simpsons [18x03] Please Homer, Don't Hammer 'Em.avi
Archive #9:/media/cdrom/Simpsons/The Simpsons [18x02] Jazzy And The Pussycats.avi
Archive #9:/media/cdrom/Simpsons/The Simpsons [18x01] The Mook, the Chef, the Wife, and Her H.avi
共役で
改善のためのアイデアがあれば、コメントに3行または4行のコードを投稿するのは悪い考えではないと思います:)
ディスクコレクションの整理に役立てていただければ幸いです。 私自身、もう少し助けて、病気から逃げました。それは良いことです:)
コメントのPS Habrauser ysteinは、ダンプダンプを保存する素晴らしいアイデアと実装(Windows用)を提案しました。これは、検索などの機能を既存のファイルマネージャーに転送します。
PPSマイナス、Habrapostへの登録解除、または理由についてのコメント:)