LoginSignup
1
0

More than 5 years have passed since last update.

ファイル名・容量・タイムスタンプ・パーミッションなどをタブ区切りで出力する

Posted at

まだまだエクセル全盛期なシステム業界。

複数ファイルをデプロイ依頼するにも
いちいち1ファイルごとに
容量・タイムスタンプ・パーミッションを書かされるのが
ぼくの現場です。

今日は300ファイルくらい申請する必要があります。

先輩に聞いたら
「右クリックでプロパティでサイズと更新日は分かるよ」と
真顔で言われました。

さすがにやってられないのでbashの練習がてら
Shellで組んで見ることにしました。

ファイルをリストアップする

find か ls -lR か tree が候補にあがると思います。

この後一覧を加工したりするので
一番素直に出力される find を採用することにしました。

find . -type f

日付の形式を指定してlistする

なんか、日付のフォーマットが
自分の開発環境だと英語表記だったので
フォーマットを指定します。

ls -l --time-style=+'%Y-%m-%d_%H:%M:%S'

複数スペースを1スペースに変換する

ls -l コマンドでは、半角スペース埋めで整形されて出力されます。
そのままだと扱いづらいので、この変換をかませます。

sed -i -e 's/\s\+/ /g' list.txt

※なぜか 's/ +/ /g'では上手くいきませんでした。

ファイル名でソートする

findは基本的にソートしてくれないので、sortコマンドで
別途ソートして上げる必要があります。
7番目の要素でソートするようにすればファイル名でソートになります。

sort -k7

半角スペースをタブに変換する

sed -i -e 's/ /\t/g' list.txt

これでようやく300ファイルをいちいち
右クリックする必要がなくなりました。

やったね。

・・・

SubversionかGitか
何かある世界に生まれたかったです。。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0