0

ファイルツリーからいくつかの情報をファイルに出力する必要があります。すべてのファイルを.rns拡張子付きで一覧表示する必要があります。

私はこれを試します:

find ./ -name "*.rns" -print>>myLog.log

うまく機能しますが、ログのすべての行の前にシステムの日付を入れたいと思います。このような:

2013-10-02 14:02 - /volume1/file_1.rns

私はこれを試してみましたが、うまくいきません:

FECHA=`date '+%Y-%m-%d %H:%M'`
VAR_FILE_INFO="$FECHA + `find ./ -name "*.rns"` "
echo "$VAR_PRUEBA"

そのコードはこれを返します:

2013-10-02 14:02 - /volume1/file_1.rns
/volume1/file_2.rns
/volume1/file_3.rns
/volume1/file_3.rns

日付は一度だけ印刷されます。

4

2 に答える 2

3

これはどうですか?

find ./ -name "*.rns" -printf "$FECHA %p\n" >> myLog.log

%pはファイル名を指し、$FECHA保存したばかりの値です。最後\nは新しい行を取得することです (そうしないと、すべての結果が同じ行に表示されます)。

テスト

$ FECHA=`date '+%Y-%m-%d %H:%M'`
$ find t/ -printf "$FECHA %p\n" >> mylog.log
$ cat mylog.log
2013-10-02 14:27 t/
2013-10-02 14:27 t/myfile
2013-10-02 14:27 t/mydir
2013-10-02 14:27 t/mydir/something

うまくいかないようです。おそらく、Linux ではなく Unix でテストしているためです。 find: bad option -printf

次に、次のようにします。

for file in $(find ./ -name "*.rns")
do
  echo "$FECHA $file" >> myLog.log
done

または、より良い:

while read -r file;
do
  echo "$FECHA $file" >> myLog.log
done < <(find ./ -name "*.rns")
于 2013-10-02T12:25:14.390 に答える