Tôi đang cố gắng thao tác một tập tin chứa các số trong ký hiệu khoa học, nhưng không có e
ký hiệu, tức 1.2e+3
là được viết là 1.2+3
.
Cách dễ nhất tôi nghĩ làm awk
là thay thế +
bằng e+
, sử dụng gsub
hàm và thực hiện phép tính của tôi trong tệp mới. Điều tương tự cũng xảy ra đối với trường hợp trừ. Vì vậy, một sửa chữa đơn giản có thể được thực hiện bằng cách sử dụng lệnh sau đây
awk '{gsub("+", "e+", $1); print $1, $2, $3, $4, $5}' file_in
và làm tương tự trong tất cả các cột.
Tuy nhiên, tập tin cũng chứa các số âm làm cho mọi thứ phức tạp hơn một chút. Một tập tin mẫu có thể được nhìn thấy dưới đây
1.056000+0 5.000000-1 2.454400-3 2.914800-2 8.141500-6
2.043430+1 5.000000-1 2.750500-3 2.698100-2-2.034300-4
3.829842+1 5.000000-1 1.969923-2 2.211364-2 9.499900-6
4.168521+1 5.000000-1 1.601262-2 3.030919-2-3.372000-6
6.661784+1 5.000000-1 5.250575-2 3.443669-2 2.585500-5
7.278104+1 5.000000-1 2.137055-2 2.601701-2 8.999800-5
9.077287+1 5.000000-1 1.320498-2 2.961020-2-1.011600-5
9.248130+1 5.000000-1 3.069610-3 2.786329-2-6.317000-5
1.049935+2 5.000000-1 4.218794-2 3.321955-2-5.097000-6
1.216283+2 5.000000-1 1.432105-2 3.077165-2 4.300300-5
Bất kỳ ý tưởng về cách thao tác và tính toán với một tập tin như vậy?