• ベストアンサー

正規表現で先頭の一文字を消したい

カレントのファイルリストを作りたいのですが、 どうすればいいかわかりません。 find . -type f > list.txt のようにしたのですが、 これだと ./abc/def/grt.txt のようになり、この先頭の"."が邪魔です。 正規表現を使えばいいのかと思ったのですが、 よくわかりませんでした。 よろしくお願いいたします。

  • Perl
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • kochory
  • ベストアンサー率45% (167/370)
回答No.1

Perlのカテゴリに質問されてますが、これperlじゃなくてシェルですよね・・・ sedを使って加工すれば済みます find . -type f | sed s/^.// > list.txt で望みの結果が得られます。

azicyan
質問者

お礼

申し訳ありません。 シェルで作ったリストをperlで処理しようとしていたので、perlで質問してしまいました。 でも教えていただいた方法でシェルでリストを作り直せばできそうです。 sedというのを使うのですね。 ちょっと調べてみました。 s/^.// は先頭に.があったら、/何もなし/に置換する という意味ですね! ありがとうございました! 助かりました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

作ったリストをPerlで処理 perl -i.bak -pe 's/^\.//' list.txt

azicyan
質問者

お礼

ありがとうございます。 perlのなかでは’が必要になるのですね。 回答ありがとうございました

関連するQ&A

  • 「マッチしない」正規表現の書き方

    正規表現について、おたずねします。 文字列 abc,def,ghi のいずれかにマッチする正規表現は (abc|def|ghi) ですよね。 それでは、「abc,def,ghi のいずれにもマッチしない」正規表現は、どう書けばいいのでしょうか? あちこち調べましたが、どうしてもわかりません。 ただし、if $a =~ /(abc|def|ghi)/ などで、=~ を !~ に直す、というのはナシです。あくまでも右辺の式の中で表現したいのですが…

  • perlの正規表現について

    perl初心者です。 早速ですが質問です。 複数のファイルが存在するフォルダ内にて、「~.abc.txt」というテキストファイルのみを 読み込みたい場合はどのように指定すればよいのでしょうか。 #open (F,○○)という表記になるかと思うのですが、 #適当な正規表現が分からず苦労しております。 お分かりになる方いらっしゃいましたら、ご教授してくださいませ。 以上です。 宜しくお願いいたします。

  • c#の正規表現がうまくいきません

    c#の正規表現がうまくいきません 以下のhtmlから指定の文字列を抜き取ります(htmlは適当です) ---------------------------------------- <select class="iiy_name_list"> <option value="1347">abc</option> </select></td> <select class="sug_name_list"> <option value="761">def</option> </select></td> ---------------------------------------- 2行目の"abc"、5行目の"def"の2つをキャプチャで得たいのですが、 @"<option\s+[^>]*>(.*)</select>",という指定では5行目の"def"しか得られません forを使って2回のループで一つ目の変数に"abc"二つ目の変数に"def"を入れるには どうしたらよいのでしょうか? 以下のページを参考にしたのですが、うまくいきません… http://uchukamen.com/Programming1/RegEx/index.htm よろしくお願いします。

  • 正規表現について

    以下のようなファイル名にマッチする正規表現は [ファイル名] 20080303_001test.txt 20080303_002test.txt [正規表現] ^20080303_(001|002)test\.txt$ であってますでしょうか。 ※特に()内の、"001"と"002)test\.txt"のどちらかにマッチすれば良いという条件になってないか心配です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 正規表現にて文字数をチェックするには?

    正規表現にて、入力した文字列が、 (1)アルファベットABC、 および (2)「'」(アポストロフィ)から始まるアルファベットDEF で構成された文字列で、文字列の長さが1~10の範囲にあるかどうかを検査する正規表現を作成しようとして難航しています。 以下だと、「アポストロフィ+文字」の二文字が10回繰り返しで20文字の場合もtrueになります。 とにかく全体で10文字以内かどうかを検査する正規表現の書き方をご存じの方、教えてください。 /(([A-C]|'[D-F]){1,10})/

  • Rubyにおける正規表現(一致しない)

    Rubyを使って、テキスト処理をやっています。 どうしても、うまく行かないところがあります。 サジェスチョンをお願いします。 正規表現にて、 2つの条件フラグが成立していて、かつ、特定の文字列を含まないという条件です。 1行の内容は、textに入っています。 if (myFlag1==1) && (myFlag2==1) && (!/abc def/) then xxxxxxxx end (!/abc def/)は、perlでの表現です。Rubyでは、少なくとも (!/abc def/=~text) かな、と考えましたが、ダメでした。 (/abc def/!=text) でも、だめでした。 宜しくお願いいたします。

  • phpの正規表現

    phpの正規表現で困っています。 下記のような文で括弧で囲まれた文字列だけを消したいのですが、 (ABC)あいうえお(DEF) /(.*)/で置換すると文章が全部消えてしまいます。 「あいうえお」だけを残したいのですがうまくいきません。何方か教えてください。お願いします!

    • ベストアンサー
    • PHP
  • サクラエディタの正規表現での置換

    サクラエディタの正規表現での置換の方法について教えて下さい。 行の末尾が数字で終わらない行の改行コードを削除したいと考えています。 ---------- 元ファイル ---------- 000abc123 777def 456 333ghi789 222jk+ 111 ---------- ---------- 加工後 ---------- 000abc123 777def456 333ghi789 222jk+111 ---------- 「置換前」は『[^0-9]\n』を入力することで検索できましたが、 「置換後」に何を設定すれば良いのかわかりません。(または「検索対象」の設定を変える必要があるのかなど) 例えば置換後に何も設定しないと「777de456」とfが消えてしまうため、”f”を残した上で改行コードを削除したいのですが その方法がわかりません。 よろしくお願いいたします。

  • 正規表現が解読できません。

    ツールが対象ファイルを認識する規則が正規表現で記載されているのですが、 正規表現について無知なため、解読することができずに困っております。 ネット等で検索し、[A-Z0-9]や{4,4}など部分的には解読することができたのですが・・・ FILE_COPY.REGEX1=<ABC>\t.+\\\\ABC(\\\\.*)?\\\\[A-Z0-9]{4,4}[0-9]{3,3}[A-Z0-9]+\\\\[A-Z0-9]{4,4}[0-9]{3,3}[A-Z0-9]+\\.gz FILE_COPY.REGEX2=<DEF>\t.*\\\\[^\\\\]*(?<\!\\.tar) FILE_COPY.REGEX3=<GHI>\t.+\\.xml\\.gz どなたかお時間のある方がいらっしゃいましたら、ご教示いただけないでしょうか。 どうぞよろしくお願いいたします。

  • VBSのADODB.Streamで先頭に「追記」

    こんにちは、 VBSのADODB.Streamでファイルを操作しています。 単純なことですが、どうしたらよいか、わからないことがあります。 test.txt の中身は abc def ghi となっています。 これを 123 abc def ghi のように変更したいのです。 ファイルの内容をいったんすべて読み込んで、Position = 0にして、123を書き込んで、読み込んだ残りを書き込めばよいのですが、ファイルのサイズが大きくなるとかなり無駄のように思います。 もっとスマートに、先頭に書き込んで、「書き込んだ分だけ残りは後ろに押し出される」・・・みたいな命令はできないのでしょうか? できなければバッチファイルで処理しようかと思っています。

専門家に質問してみよう