linux - 列出当前目录中没有数字的文件名

标签 linux bash

我在做这个练习时遇到了问题。到目前为止,我得到了这段代码:

#!/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/

相关文章:

reactjs - 如何使用 HTTPS 启动 React 项目

linux - 关于设置游戏的问题! linux服务器上的应用程序

javascript - 使用 java 脚本从 Linux FS 中的文件写入/读取内容

c - 有循环的 Stty 错误,没有循环没有 stty 错误

python - 如何使用gsutil删除gcs中除1之外的多个文件

linux - 从日志文件中提取日志时间

linux - 类似 FUSE 的文件系统

linux - 将 C 中的整数传递给进程

Python - 在系统启动时运行文件监听器直到系统关闭以执行一些自动操作,但不工作

xcode - 打开 Xcode 项目并从终端设置事件文件