在当前路径所有log中搜索文件名包含0531的文件
时间: 2024-02-20 21:57:36 浏览: 51
您可以使用以下命令在当前路径所有log中搜索文件名包含0531的文件:
```
find . -name "*0531*.log"
```
这将在当前目录及其子目录中搜索文件名包含0531且以.log结尾的文件,并返回所有匹配的结果。请注意,此命令只在当前路径中搜索,搜索速度应该比在整个文件系统中搜索要快。
相关问题
在当前路径所有log中搜索文件名包含0531的文件,并将这些文件删除
警告:在执行下面的命令之前,请确保您真正想要删除这些文件,因为删除后无法恢复。
您可以使用以下命令在当前路径所有log中搜索文件名包含0531的文件,并将这些文件删除:
```
find . -name "*0531*.log" -delete
```
此命令将在当前目录及其子目录中搜索文件名包含0531且以.log结尾的文件,并将它们删除。请注意,此命令直接删除文件,没有任何提示,因此请谨慎使用。如果您不确定要删除哪些文件,可以先使用 `find . -name "*0531*.log"` 命令查看匹配的结果,确保这些文件是您想要删除的文件,然后再执行上述删除命令。
写一个shell脚本。依次检查当前目录及所有子目录下面的log文件,找到第一个包含555555的行,如果没有就不再检查当前文件。找到一个555555行后,检查此行到未见尾的所有行,如果某一行中出现Timing violation,记录当前行号。增加输出到文件check.log,输出内容包含文件路径以及出现Timing violation的行号,并且echo显示文件名+行号。注意每次输出check.log不是覆盖而是增加,check.log保存在当前目录。
以下是实现上述功能的shell脚本:
```bash
#!/bin/bash
find . -name "*.log" | while read log_file; do
echo "Checking $log_file..."
line_number=0
while IFS= read -r line; do
((line_number++))
if echo "$line" | grep -q "555555"; then
echo "Found 555555 in $log_file at line $line_number"
tail -n +$line_number "$log_file" | grep -q "Timing violation"
if [ $? -eq 0 ]; then
echo "Found Timing violation in $log_file at line $line_number"
echo "$log_file:$line_number" >> check.log
echo "$log_file:$line_number"
fi
break
fi
done < "$log_file"
done
```
脚本使用find命令查找当前目录及所有子目录下的log文件,并逐个检查文件中是否包含555555行。如果找到了555555行,则从该行开始逐行检查,如果某一行包含了"Timing violation",则记录当前行号,并将文件路径和行号输出到check.log文件中,并且在echo输出中也显示文件名和行号。注意,每次输出都是增加到check.log文件中,而不是覆盖。
阅读全文