【问题标题】:How to find filenames from ls in a file in unix如何从 ls 在 unix 的文件中查找文件名
【发布时间】:2018-09-22 02:48:33
【问题描述】:

我正在尝试查找目录中的文件(ls 的输出)是否存在于文件中。所以我在这个文件中有一个名为 test.txt 的文件,我有几个文件名,例如 V1.txt、v2.txt、v3.txt。 现在,当我执行 ls 时,我会在目录中找到文件列表,我想搜索这些文件中是否有任何文件在我的 test.txt 文件中。 示例:

【问题讨论】:

  • 您的要求一点也不清楚。您是在尝试编写 bash 脚本,还是使用诸如 python 或 C 之类的语言?请向我们展示您已经尝试过的内容。
  • 我正在寻找 unix 命令。当我执行 ls 时,假设我得到了这些文件:V1.txt、V2.txt、V3.txt、file_list.txt。现在 file_list.txt 包含该目录上的文件名。因此,假设 file_list.txt 包含 V1.txt V2.txt 但不包含 V3.txt。所以我需要一个 unix 命令来列出这个例子中 file_list.txt 中没有列出的文件,输出将是 V3.txt。

标签: unix awk grep find ls


【解决方案1】:

听起来你有两个任务要做。

1) 遍历目录列表 2) 在文本文件中搜索目录中的任何文件名

测试设置

echo "V1.txt" > file_list.txt
echo "V2.txt" >> file_list.txt
mkdir testdir
touch testdir/V1.txt
touch testdir/V2.txt
touch testdir/V3.txt

代码

#!/bin/bash
for f in `ls testdir`
do
  if grep -q $f file_list.txt; then
    echo "found $f"
  else
    echo "not found $f"
  fi
done

【讨论】:

    猜你喜欢
    • 2013-01-20
    • 2013-04-17
    • 2012-08-04
    • 2011-06-29
    • 2012-05-28
    • 2013-09-05
    • 2014-01-20
    • 2015-11-08
    • 2011-12-15
    相关资源
    最近更新 更多