Nếu bạn muốn giải thích $replace
, bạn không nên sử dụng dấu nháy đơn vì chúng ngăn thay đổi biến.
Hãy thử:.
echo $LINE | sed -e "s/12345678/\"${replace}\"/g"
giả sử bạn muốn có dấu ngoặc kép đưa vào Nếu bạn không muốn có dấu ngoặc kép, sử dụng:
echo $LINE | sed -e "s/12345678/${replace}/g"
Transcript:
pax> export replace=987654321
pax> echo X123456789X | sed "s/123456789/${replace}/"
X987654321X
pax> _
Chỉ cần cẩn thận để đảm bảo rằng ${replace}
không có bất kỳ charac ters của ý nghĩa để sed
(ví dụ như /
) vì nó sẽ gây nhầm lẫn trừ khi thoát. Nhưng nếu, như bạn nói, bạn đang thay thế một số với nhau, điều đó không phải là một vấn đề.
Đối với câu hỏi liên quan phổ biến về việc xử lý các giá trị có dấu gạch chéo trong chúng, hãy xem http://stackoverflow.com/questions/5864146/use-slashes-in-sed-replace – tripleee