スキップしてメイン コンテンツに移動

bash ファイル名に半角スペースが入っているファイル一覧の取得

シュルはループをしなくても下記の例のように、ファイル一覧から、ファイル名をパラメーターにして、自分のプログラムに渡して順番に実行することができます。まあ、一番いい方法かどうかは置いといて、やりたいことができるならわるくないとは思います。

#!/bin/bash

TD=/tmp/all2mp4-$$

ls -l ~/myfiles/*.anyext | awk '{print "bash ~/myprogram.sh " gsub(/ /,"\\ ",$9)}'> $TD

bash $TD

sleep 1

rm $TD

しかし、ファイル名にスペースが入っている場合、上記のawkからちゃんとファイルを取得することができなかったので、下記に書き直しました。それから、自分のプログラムに渡した場合、スペースを¥(バックスラッシュ)でエスケープしないとちゃんとパラメーターとして渡せない点を注意する必要がありますね。

#!/bin/bash

TD=/tmp/all2mp4-$$

 ls -l ~/myfiles/*.anyext | awk '{tmp=$1;for (i = 2; i <= 8; i++) tmp=tmp " " $i;gsub(" "," ",$0);gsub(tmp " ","",$0); gsub(" ","\\ ",$0); print "bash ~/myprogram.sh " $0}'> $TD

bash $TD

sleep 1

rm $TD

【註】$$ 実行されたシェル自身のプロセスIDです。

(日付が一桁のとき、2連スペースになるため、2連スペースを一つスペースに置換する修正しました)

 

コメント

このブログの人気の投稿

趣味はなんですか?

 最近、仲間に趣味はなんですかって聞かれたらどう答えますか? う~ん、そうね。パソコンですかね。(いかにもオタクっぽいイメージがありますね。^^;) それともデータ処理ですかね。(ちょっと硬いイメージですかね。>_< もうちょっとよく考えると、データ探しですかね。まあ、一般の人は聞いてもわからないでしょうけど。

自己流思い付き

 長年契約してきたさくらインターネットのVPSに稼働しているWordpressが何らかのものに削除されました。幸い残したいものはこのブログに移したので、あまり困ったことはありませんでした。もうVPSを解約しようと思いますが、今年の11月までの契約なので、正直って迷っております。  職場のホームページサーバがMacmini上のピュアDebianなので、実験台としてVPSを契約したのですが、もう実験しないし、解約してもよいだと思います。   このブログもこれをきっかけにタイトルを変えました。

余裕ですかね。

  いまの自分はやることが多いが、意外と慌てず一歩一歩現場と歩んでいき、地道にデータ入力から可視化までの利便性、完全性と正確性を追求する余裕が出ております。SpotfireというBIツールにハマり、人に使い方を教えながらもまたその恩恵を受けているといういい循環も大きいですね。大体自分のようなポストにいる人たちはあまりプログラムを書く余裕もないだが、自分は幸せのほうと思います。