Linux 列出当前目录中不包含';他们体内没有数字

Linux 列出当前目录中不包含';他们体内没有数字,linux,bash,Linux,Bash,我做这个练习有困难。到目前为止,我得到了以下代码: #!/bin/bash for file in *.txt do if grep -qv '[0-9]' $file; then echo "$file" fi done 不幸的是没有成功。它列出了我所有的.txt文件。与标题中一样,我想检查目录中所有文件的内部,如果它们不包含数字,则回显名称文件。-v使其与任何不包含数字的行匹配。如果文件中甚至包含一行这样的内容,则该文件将匹配 使用,而不是使用-v反转匹配: for fil

我做这个练习有困难。到目前为止,我得到了以下代码:

#!/bin/bash
for file in *.txt
do
  if grep -qv '[0-9]' $file; then
    echo "$file"
  fi
done

不幸的是没有成功。它列出了我所有的.txt文件。与标题中一样,我想检查目录中所有文件的内部,如果它们不包含数字,则回显名称文件。

-v
使其与任何不包含数字的行匹配。如果文件中甚至包含一行这样的内容,则该文件将匹配

使用
,而不是使用
-v
反转匹配

for file in *.txt
do
  if ! grep -q '[0-9]' "$file"; then
    echo "$file"
  fi
done
您还可以通过单个
grep
调用完成整个过程,并跳过循环
-L
打印与模式不匹配的文件

grep -L '[0-9]' *.txt

对于下一个文件和结束文件,使用GNU awk:

awk '
    /[0-9]/ { f=1; nextfile }
    ENDFILE { if (!f) print FILENAME; f=0 }
' *.txt
对于任何awk:

awk '
    /[0-9]/ { f[FILENAME] }
    END { for (i=1; i<ARGC; i++) if ( !(ARGV[i] in f) ) print ARGV[i] }
' *.txt
awk'
/[0-9]/{f[文件名]}
结束{for(i=1;i