我有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
它不打印任何。有没有更好的想法呢?
答案 0 :(得分:4)
我想在100个文件中删除这些文件,如果第二行第三列的值为0
您可以使用:
for file in file*.dat; do
awk 'NR==2{exit ($3 != 0)}' "$file" && echo rm "$file"
done
如果对结果感到满意,请在echo
之前删除rm
。