• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:awkの正規表現について)

awkを使用して特定のディレクトリの1階層下のディレクトリ名とファイル名を抽出する方法

このQ&Aのポイント
  • ディレクトリ名とファイル名の一覧ファイルから、特定のディレクトリの1階層下のディレクトリ名とファイル名を抽出する方法について質問があります。
  • 質問の場合、awkコマンドを使用して1階層下のディレクトリとファイルのみを抽出したいと考えています。
  • 現在のawkコマンドでは、1階層下のディレクトリを含む全てのディレクトリとファイルが抽出されてしまいます。正しい書き方を教えてください。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

awk '$1 ~ /^\/foo\/bar\/([^/]+\/?)?$/ {print}' dir.txt かな?

pearlenerg
質問者

補足

試してみたのですが、うまくいきませんでした。 環境はDebian(Etch)、bashです。 上記コマンドを実行した結果、何も出力しませんでした。 ([^/]+\/?)?$は スラッシュ以外の文字の連続で最後がスラッシュかスラッシュ以外のもの という認識でよいのですか?

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

うん, そんな感じで書いたつもり. 全体の ()? は「そのディレクトリ」にマッチさせるため, その中の [^/]+\/? は「そのディレクトリの 1つ下のファイルおよびディレクトリ」にマッチさせるため.

pearlenerg
質問者

補足

もうちょっと、正規表現の勉強をしてみます。 回答ありがとうございました。

関連するQ&A