【问题标题】:grep filenames from an exclude log排除日志中的 grep 文件名
【发布时间】:2013-11-21 16:07:58
【问题描述】:

我的 bash 脚本有问题。我想从排除.log 中列出的处理文件中排除。处理完文件后,会将其写入排除日志。

for I in `ls $1 | grep ./exclude.log -v`

do
    echo "Procesing ...."
    echo $I >> ./exclude.log
done

【问题讨论】:

  • 你的问题是……?
  • 我卡住了,不知道如何在 bash 中进行操作。
  • @user3018224:您从哪里获得要处理的文件列表?是来自当前目录下的ls 命令吗?
  • 我会从目录中获取它,巫婆作为脚本中的参数给出。 ls 命令列出目录中的所有内容,因为我想检查文件是否列在 exclude.log 中。并且检查不起作用。
  • grep 语法中的 -f 参数做到了。感谢您的快速回复。

标签: linux bash for-loop grep


【解决方案1】:

$I 没有赋值。 此外,您的 grep 公式也不正确。

你可能想要

LIST=$( grep -v -f /path/to/exclude.log * )
for I in $LIST
do
        echo "Procesing ...."
        echo $I >> /path/to/exclude.log
done

确保 exclude.log 中没有任何空行

【讨论】:

    【解决方案2】:

    你可以使用这个while循环:

    while read -r l; do
       echo "$l"; 
    done < <(fgrep -v -wf exclude.log <(printf "%s\n" "$1"/*))
    

    【讨论】:

      猜你喜欢
      • 2015-12-24
      • 2014-09-10
      • 2019-02-04
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多