我在做这个练习时遇到了问题。到目前为止,我得到了这段代码:
#!/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
关于linux - 列出当前目录中没有数字的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56095133/