我想列出特定文件夹中的最后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
我绝对需要在尾巴和T恤之间使用一些东西。有人可以帮帮我吗?
答案 0 :(得分:2)
ls -ltr /home/oracle.$dbserver/*.log | tail -3 | awk '{print $NF}' | awk -F/ '{print $NF}' | tee tmp.out
答案 1 :(得分:1)
Jut cd
到该目录然后
cd /home/oracle/$dbserver/ && ls -ltr *.log | awk '{print $9}' | tail -3 | tee $OLDPWD/tmp.out
答案 2 :(得分: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