Tìm kiếm và thay thế văn bản

Bash:
Tìm kiếm và thay thế văn bản

Cách làm:

Dưới đây là cách bạn sử dụng sức mạnh của tìm kiếm và thay thế trong bash:

  1. Đổi văn bản trong một chuỗi sử dụng sed:
echo "Hello world" | sed 's/world/vũ trụ/'
# Kết quả: Hello vũ trụ
  1. Thay thế văn bản trong một tệp, lưu các thay đổi:
sed -i 's/old_text/new_text/g' file.txt
  1. Sử dụng biến trong tìm kiếm và thay thế của bạn:
old="apple"
new="chuối"
sed "s/$old/$new/g" <<< "I like apple pies"
# Kết quả: I like chuối pies

Nhớ rằng, g ở cuối có nghĩa là “toàn cầu”, vì vậy bạn thay đổi mỗi lần khớp trong dòng, không chỉ lần đầu tiên.

Sâu hơn nữa

Chúng ta đã có công cụ xử lý văn bản trên các hệ thống giống Unix từ rất lâu. sed, viết tắt của Stream Editor, là một công cụ như vậy, và nó đã tồn tại từ những năm 1970. Nó không chỉ dùng để thay thế đơn giản; sed còn có thể cắt và chia văn bản theo các mẫu phức tạp nữa.

Có lựa chọn khác không? Chắc chắn rồi. awk phức tạp hơn một chút và có thể làm việc thần kỳ với các cột và hàng. Đối với các sửa đổi nhanh chóng, grep có thể giúp bạn tìm thứ gì đó, nhưng nó sẽ không thay thế - nó giống như người canh gác hơn.

Bên trong, sed sử dụng biểu thức chính quy, giống như các ký tự đại diện trên steroid. Chúng có thể khớp hầu hết mọi mẫu bạn có thể nghĩ đến. Điều này làm cho sed vô cùng mạnh mẽ, nhưng cũng hơi khó để thành thạo.

Xem Thêm