tìm kiếm và thay thế


0

Tôi có một tập tin

love=/abc
day=abc
night=xyz
afternoon=xyzabc

Tôi đang đọc từng giá trị trong một biến, bây giờ tôi cần thay thế biến thứ 2 bằng một chuỗi cụ thể. như

$1st = "/abc"   $replace1 = "/abc/pqr"
$2nd = "abc"    $replace2 = "abc1"
$3rd = "xyzabc" $replace3 = "mnpabc"

Tôi đã sử dụng perl -0777 -pi -2 's%$1st%$replace1%' filenày không thay thế dòng 1

Tôi đã sử dụng perl -0777 -pi -e 's/3rd/$replace1/ filenày không dòng thứ 3.

nhưng thời điểm tôi thay thế $ 2 bằng $ thay thế, nó thay thế tất cả những nơi từng có "abc". Làm thế nào tôi có thể hạn chế điều này để chỉ thay thế một yếu tố tại một thời điểm?


Bất cứ ai có ý tưởng về điều này
Guestme

Câu trả lời:


1

Khó hiểu chính xác những gì bạn đang làm nhưng tệp đầu vào của bạn phù hợp với định dạng của tệp cấu hình (như windows ini hoặc unix conf). Tôi sẽ đề nghị bạn sử dụng một mô-đun Perl có thể giúp đọc và viết định dạng này một cách dễ dàng. Hãy thử cấu hình :: Đơn giản hoặc Cấu hình :: INI từ CPAN.

Nếu không, bạn có đang cố ý sử dụng "perl -0777" (bỏ qua các dấu tách bản ghi) không? Điều này là bất thường đối với tôi vì danh sách các lớp lót nói chung.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.