如果文件的第一行的第三列是0,则删除文件?

时间:2016-07-04 06:38:59

标签: bash awk

我有100个名为file1.dat file2.dat,... file100.dat的文件。 他们每个看起来像

#  step    population   probability
1   0.00000000       0.00000000    
2   0.00000000       0.00000000 

其中行的第二列和第三列的值可能不同。

如果第二行第三列的值为0 ,我想在100个文件中删除这些文件。(条件) 首先,我尝试在bash中找出满足条件的这些文件

    n='0.00000000' 
    col='$3'
    e=0.0000001
    for i in file*.dat
    do
     awk -v col=$col 'NR==2{ if(col<e) print col}' > $n
     echo $n
    done

它不打印任何。有没有更好的想法呢?

1 个答案:

答案 0 :(得分:4)

  

我想在100个文件中删除这些文件,如果第二行第三列的值为0

您可以使用:

for file in file*.dat; do
   awk 'NR==2{exit ($3 != 0)}' "$file" && echo rm "$file"
done

如果对结果感到满意,请在echo之前删除rm