Archive for the ‘bash’ Category

terminal

たとえばあるディレクトリの中に

text1.txt,text2.txt,text3.text,,,text30.txt

と30のファイルがあったとして、それらのファイルの全ての末尾に”hogehoge”と書き込みたい場合。

わたしはこう書きました

find ./ -type f | xargs -I@ echo "hogehoge" >> @

できたかなーと、ファイルの中をみてみると空でした。

かわりに、@というファイルが増えており、その中に30行のhogehogeが追記されていました。

なんじゃこりゃということで、Linuxマスターに尋ねてみると、どうやら |(パイプ)や >>(追記リダイレクト)の記号はそれの以前と以後でコマンドの影響範囲が異なるという事なんですね。

| xargs -I@ echo "hogehoge" >> @

は正しく認識されておらず、>>を介してしまったために@の置換が上手くいっていなかったということです。

ということで、上でやろうとしたことを正しく実行させるにはこうした方がよさそうです。

for n in $(find ./ -type f); do echo "hogehoge" > $n; done

findをコマンド置換によってforに投げて、1ファイル適宜hogehogeを追記するわけですね〜。

シェルスクリプトをわざわざ書くまでもなく、すっきりしました。

ImageMagick-TestCommand

Windowsの縮小専用とか、その他画像をドラッグアンドドロップで縮小する系のソフトウェアは総じて縮小後に何故か彩度が落ちます。

そのため、筆者の様にカメラを趣味にしているものはそれらのソフトを使う気にならず、わざわざ重い画像処理ソフトを立ち上げて縮小しなければならなかったのですが、この度ImageMagickは色落ちしない事が判明しました。

そこで、ImageMagickを使って一括で画像を縮小処理する方法をご紹介します。

目的のディレクトリに移動した後に

を実行するだけです。
あとはディレクトリの中を覗いてみると、縮小された画像は「ファイル名-resized.jpg」という名前で保存されています。

なお、1280xの値を変更する事で、アスペクト比は保ったまま指定したサイズに縮小が可能です。
1280×1280とすることで長辺1280の画像が生成されます。

qualityオプションは80に設定していますが、筆者としては80くらいがちょうどよいと感じました。
この値を低く設定しすぎると、Jpeg特有のブロックノイズが目立ち始めます。
また、100にすると画像サイズを縮小してもデータサイズがかなりデカイという事になってしまい使い勝手が悪いです。

unsharpオプションの値は複雑なので、一度調べてから変更する事をおすすめします。

mint-logo-200

画像まとめサイトなんかの画像をwgetを用いて一括でダウンロードして保管する方法

wget -r -l1 -Ajpg -P ~/localdirectry -H -Dimghost.jp http://target.html

それぞれのオプションの意味

-r:再帰的に

-l1:1階層掘って

-Ajpg:拡張子はjpgを指定

-P~/localdirectry :成果物の保存場所は~/localdirecty

-H:ホストが異なっても再帰的に取得する

-D:取得するドメインの指定

最後に画像を一括したい場所 http://target.html

 

以上で、すべてのファイルが ~/localdirectry に保存されるはずです。