だからこの構造のフォルダがあります。
topperlayer
├── layerone
│ └── testfile
└── layertwo
layerone
と同様に、layertwo
1つのレイヤーの下に多くのディレクトリがあり、サブディレクトリもあります。
レイヤーの1つまたはレイヤーのサブディレクトリにファイルがありますtestfile
。
testfile
REGEXを使用して位置を取得できますか?
それはまるで-
#!/bin/bash
echo $(ls topperlayer/<REGEX>/testfile)
os.walk
すべてのディレクトリとサブディレクトリで作業を実行して、Pythonでファイルを見つけることができます。しかし、シェルでこれを行いたいと思います。正規表現。
助けやアドバイスをいただきありがとうございます。
PS - 私は正規表現について何も知りません。
ベストアンサー1
testfile
説明で説明されているように構成ファイルでファイルパスを指定する必要がある場合は、まずその場所を知っておく必要があります。
2つの解決策があります。
find topperlayer -type f -name testfile
topperlayer
これにより、名前付き一般ファイルの前にあるディレクトリとすべてのサブディレクトリが検索されますtestfile
。次に、見つかった各ファイルのパス名を印刷します。shopt -s globstar printf '%s\n' topperlayer/**/testfile
これにより、まず.NET
globstar
のシェルオプションが有効になりますbash
。これにより、**
同様に機能しますが、「再帰的」一致を使用する*
ワイルドカードパターンを使用できます。これにより、printf
指定されたワイルドカードパターンに一致する各名前が印刷されます。
上記の両方のオプションはパス名を印刷します。すべて testfile
以下にtopperlayer
。
ファイルへの適切なパス名を見つけたら、それを構成ファイルに追加します。