2

我想列出特定文件夹中的最后 3 个日志并将输出重定向到另一个 tmp.out 文件。

ls -ltr /home/oracle/$dbserver/*.log  |  awk '{print $9}' | tail -3   | tee tmp.out

我希望在 tmp 文件中看到的是:

a.out
b.out
c.out

我得到的是:

/home/oracle/DB1/a.out
/home/oracle/DB1/b.out
/home/oracle/DB1/c.out

我肯定需要在尾巴和发球台之间使用一些东西。有人可以帮助我吗?

4

3 回答 3

2
ls -ltr /home/oracle.$dbserver/*.log | tail -3 | awk '{print $NF}' | awk -F/ '{print $NF}' | tee tmp.out
于 2013-03-13T19:06:58.373 回答
1

到那个cd目录然后

 cd /home/oracle/$dbserver/ && ls -ltr *.log  |  awk '{print $9}' | tail -3   | tee  $OLDPWD/tmp.out
于 2013-03-13T19:13:03.967 回答
1

basename命令将采用形式的字符串/foo/bar/baz.txt并简单地返回baz.txt。通过 xargs 调用它,确保使用命令行标志-n 1,这样它一次只发送一个文件名到basename.

ls -ltr /home/oracle/$dbserver/*.log | awk '{print $9}' | xargs -n 1 basename | tail -3 | tee tmp.out

于 2013-03-13T19:16:26.430 回答