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