此命令在命令提示符下运行良好:
]$ ls -ltr ../cmxserver.log*|grep "`date | awk '{print $2" "$3}'`"|cut -d "/" -f2
cmxserver.log.2
cmxserver.log.1
cmxserver.log
但是,在 for 循环中使用它会给出错误 bash:意外标记 `|' 附近的语法错误
]$for y in `ls -ltr ../cmxserver.log*|grep "`date | awk '{print $2" "$3}'`"|cut -d "/" -f2`
-bash: syntax error near unexpected token `|'
有什么想法吗?
谢谢
最佳答案
整行可以通过find
命令解决:
find .. -maxdepth 1 -mtime -1 -daystart -name 'cmxserver.log*' -printf "%f\n"
..
- 搜索目录-maxdepth 1
- 不要递归到子目录-mtime -1
- 只有今天的文件-daystart
- 从午夜算起,而不是过去 24 小时-name 'cmxserver.log*'
- 文件名-printf "%f\n"
- 只打印 basename
关于linux - bash:意外标记附近的语法错误 `|',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32583542/