Bash chỉ một mũi tên đến "else" và nói "lỗi cú pháp" trong giai điệu rên rỉ khiêu khích.Xáo trộn nếu có vấn đề khác
awk '{if($3 != 0) a = ($3/$4) print $0, a; else if($3==0) print $0, "-" }' file > out
Tại sao?
Bash chỉ một mũi tên đến "else" và nói "lỗi cú pháp" trong giai điệu rên rỉ khiêu khích.Xáo trộn nếu có vấn đề khác
awk '{if($3 != 0) a = ($3/$4) print $0, a; else if($3==0) print $0, "-" }' file > out
Tại sao?
Bạn quên dấu ngoặc ôm xung quanh khối nếu và dấu chấm phẩy giữa các câu lệnh trong khối.
awk '{if($3 != 0) {a = ($3/$4); print $0, a;} else if($3==0) print $0, "-" }' file > out
Hãy thử mã
awk '{s=($3==0)?"-":$3/$4; print s}'
Tuy nhận được phép chia cho không cố gắng – AWE
@AWE: Thêm một thử nghiệm để đối phó với '$ 4' là 0. –
tôi đã làm, sau đó tôi awk cho nó và nó doesn không tồn tại. – AWE