1

フォルダ構造は次のとおりです-home/ABCD / test1 / example1 / sample1 / textfile.txt

次のようなfindコマンドを実行すると

find /home/ABCD/ -type f -print

次の出力が得られます

/home/ABCD/test1/example1/sample1/textfile.txt

注:ABCDフォルダーからfindコマンドを実行しています。結果では、/ home / ABCD /フォルダーを除外したいので、結果として/test1/example1/sample1/testfile.txtが必要です。

どうすればこれを達成できますか?

4

4 に答える 4

1

find from を実行しているので、/home/ABCD/次のようにします。

find * -type f -print

または、ファイルを探している場合は、次のようにしますtest1

find test1 -type f -print

また-maxdepth N、検索での再帰を制限できます

textfile.txtdoという名前のファイルのみを探したい場合

find test1 -type f -name 'textfile.txt' -print 

先頭のスラッシュを印刷したい場合は、

find . -type f -printf '/%p\n'

詳細については、こちらをご覧ください

注: 変数に上記の文字列がある場合は、次のようにトリミングできます。

string="/home/ABCD/test1/example1/sample1/textfile.txt"
echo "${string#/home/ABCD}"

文字列操作のその他の例はこちら

于 2013-02-27T06:33:07.380 に答える
1

.開始ディレクトリとして使用するだけです

find . -type f -print

与える

./test1/example1/sample1/textfile.txt

先頭のスラッシュが本当に必要な場合-printfは、出力に使用します

find . -type f -printf '/%P\n'
于 2013-02-27T07:26:00.107 に答える
0

これにより、現在の作業ディレクトリ名が。に置き換えられます。

find . -type f | perl -pne "s#$PWD#.#"

したがって、次のような結果が得られます:./test1/example1/sample1/textfile.txt

前の./が必要ない場合は、代わりに次のコマンドを使用してください。

find . -type f | perl -pne "s#$PWD/##"
于 2013-02-27T07:28:22.700 に答える
0

パラメータを使用してmindepth、現在のディレクトリの 1 レベル下から検索を開始できます。

find /home/ABCD/ -mindepth 1 -type f -print
于 2013-02-27T06:29:22.880 に答える