スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Tag:スポンサー広告 

【Linux】ディレクトリ内のファイル名の特定の文字を全て置換する

はじめに


Linux(もしくはMacでも大丈夫)でファイルを扱っているとき
「このディレクトリ(またはフォルダ)に入ってる全てのファイル名のアンダースコア(_)を全てハイフン(-)にしたい」
といった、ファイル名に含まれるある文字を別の文字に変更したい時がたまにあると思います。
1つや2つであれば個別にやればいいのですが、ファイルが大量にある場合ひとつひとつ手作業でやるのは効率が悪いですよね。

こうやってみる


もちろんいくつかやり方はあると思いますが、例えば以下のようなファイルがあった場合に全てのファイルのアンダースコアをハイフンに変更してみます。



基本的にはfileコマンドでファイル名を出力して、trコマンドで置き換えて、mvするという流れになります。



こうすると



となります。今回はもう一つのやり方をご紹介します。
上記の方法よりもより柔軟な文字列変更が可能になります。



さらに、例えばtxtという拡張子を全てcsvに変えたいという場合も



さいごに


もともとは後者のsedでやる方法を多用していたのですが、trコマンドでもできないかと試してみました。
とりあえずtrコマンドが便利ということに気づかせてもらえましたが、上記のsedでやる例のようにtxtという文字列をcsvに変更するなどができません。trはあくまで文字や抽象的な集合(大文字、小文字、数字)を扱うものであって文字列を変換するものではないという認識を持って置いたほうが良いのかもしれません。

trについては他にもいろいろ使い道はあるようなのでファイルに関する何かを扱うときのために頭の片隅に置いておきたいと思います。

trコマンドについては以下が結構参考になります。
tr コマンド
スポンサーサイト
テーマ : UNIX/Linux
ジャンル : コンピュータ

Tag:Linux  Trackback:0 comment:0 

プロフィール

6rats

Author:6rats
こんにちは、ITベンチャーで働くエンジニアです
主に自分の周りで起きた技術的なことをメモとして書き残して行きます。
Android以外にもRuby/Ruby on RailsやFuelPHPなどなどたまにやります。基本的なスタンスとしては興味があるもしくは必要になったらいろんなことにチャレンジします。
最近はiOSアプリ開発を始めています。

購読
follow us in feedly
個人プロダクト

Androidアプリ

Twitterクライアント

Webアプリケーション

EcPriceWatch(Amazon価格の推移を計測、最安値を知らせるサービス)
Google AdSense
ブログ村
にほんブログ村 IT技術ブログへ
にほんブログ村
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。