Tôi có một file văn bản như thế này:awk: tìm và thay thế trong lĩnh vực nhất định chỉ
$ cat test
12 13 2100 s
12 13 3100 s
100 13 100 s
12 13 300 s
Tôi muốn đầu ra là như thế này:
$ cat test
12 13 22000 s
12 13 32000 s
100 13 2000 s
12 13 300 s
Tôi chỉ muốn thay thế 100
trong trường 3 (một lần 100
được chứa trong $3
) vào 2000
. Làm cách nào để hoàn thành công việc này bằng cách sử dụng awk
?
Làm thế nào tôi có thể thay thế tất cả những gì không phải là 100 với phép nói 5000 ? – discipulus
@lovedynasty: Bạn có thể thử một cái gì đó như: 'awk' {sub (/ [^ 1] * [^ 0] * [^ 0] * /, "5000", $ 3)} 1 'tệp'. Nhưng điều đó có thể không cung cấp cho bạn kết quả mong đợi. Thông thường khi tôi muốn thực hiện một số loại kết hợp mẫu nghịch đảo, tôi sẽ muốn sử dụng một số loại [xác nhận xung quanh] (http://www.regular-expressions.info/lookaround.html). Thật không may, 'awk' không hỗ trợ những điều này và tôi sẽ cần sử dụng một công cụ mạnh mẽ hơn. Thay vào đó, tôi sẽ sử dụng chế độ 'perl' trong' tự động tách '. HTH. – Steve