我有多个文件,如下所示:所有格式都相同。
> Calss1.txt
No grade
1 93
2 45
3 66
> Calss2.txt
No grade
1 91
2 99
3 76
Run Code Online (Sandbox Code Playgroud)
我想找到任何等级小于 60 的文件名,然后输出到另一个文件。例如,愿望会喜欢:
> output
Calss1.txt
Run Code Online (Sandbox Code Playgroud)
我尝试过:
cat .txt | awk '{if($2==$2+0 && $2<50)print ```???```}'
Run Code Online (Sandbox Code Playgroud)
我不知道如何在条件下打印文件名。任何提示都很感激。谢谢。
使用 GNU Awk,您可以使用内置变量FILENAME在第一个匹配条件时打印当前输入文件的名称,然后使用以下命令跳转到下一个输入文件nextfile:
awk 'FNR>1 && $2<50 {print FILENAME; nextfile}' Class*.txt
Run Code Online (Sandbox Code Playgroud)
Class1.txt
Run Code Online (Sandbox Code Playgroud)