4

したがって、次のコマンドを使用して、ディレクトリが引用符で囲まれたファイルのリストを取得しています

find /path -type f -mtime -100 -daystart -printf "%f\n" | sed 's/^/"/g' | sed 's/$/"/g' | tr '\n' ' '`

しかし、今はファイル名だけが欲しいので、追加しました

-printf "%f\n"

私に与える

find /path -type f -mtime -100 -daystart -printf "%f\n" | sed 's/^/"/g' | sed 's/$/"/g' | tr '\n' ' '`

しかし、結果が引用符で囲まれなくなりました。printf コマンドは結果ごとに改行を作成していないと思います。

どんな助けでも大歓迎です。

4

1 に答える 1

6

コマンドの最後のバッククォートは、コマンドfind出力を変数にリダイレクトしていることを示しています。hex2mglでコメントされているように、改行を で削除していtrます。結果を にパイプしていなかったとしても、tr引用されない限り、変数に改行が表示されない可能性があります。

例えば、

foo=$(find . -type f -mtime -100 -daystart -printf '"%f"\n')

find変数で引用されたパス名での結果を保存しますfoo

実行しても改行echo ${foo}は表示されませんが、表示されますecho "${foo}"

于 2013-08-12T09:52:37.260 に答える