控制一个新文件是否在" comm"的文件夹中传入

时间:2014-05-22 10:03:48

标签: shell command-line ksh

如果一个新文件在文件夹中传入,我正在无限循环中使用comm来查看,但是我没有2个文件的区别,但是例如如果incominig文件“a”我在输出中查看:

a a.out a.txt b.txt test.cpp testshell.sh
    a.out a.txt b.txt test.cpp testshell.sh

我的代码就是这样:

#! /bin/ksh
ls1=$(ls);
echo $ls1 > a.txt;

 while [[ 1 > 0 ]] ; do
    ls2=$(ls);
    echo $ls2 > b.txt;
    #cat b.txt;
    #sort b.txt > b.txt;
    #diff -u a.txt b.txt;
    #diff -a --suppress-common-lines -y a.txt b.txt
    comm -3 a.txt b.txt;
    printf "\n";
    ls1=$ls2;
    echo $ls1 > a.txt;
    #cat a.txt;
    #sleep 2;
    #sort a.txt > a.txt;
 done

感谢

1 个答案:

答案 0 :(得分:0)

#! /bin/ksh

set -vx

PreCycle="$( ls -1 )"

while true
 do
   ThisCycle="$( ls -1 )"

   echo "${PreCycle}${ThisCycle}" | uniq

   PreCycle="${ThisCycle}"

   sleep 10
 done

添加和删除差异但不使用文件。可以直接提供新文件,但uniq -f 1+-前缀的列表中使用时,{{1}}失败(不明白为什么)