Trong trường hợp bạn muốn thay thế một chuỗi ký tự trong một tệp tin, thường chúng ta sẽ mở tệp đó bằng một trình soạn thảo văn bản như Notepad++, Visual Studio Code và sau đó sử dụng tính năng tìm và thay thế chuỗi ký tự mà công cụ này cung cấp. Tuy nhiên, nếu tệp tin đó có dung lượng lớn, chẳng hạn như một tệp SQL, việc mở và thực hiện tìm và thay thế có thể tốn rất nhiều thời gian. Hệ điều hành thường hỗ trợ chúng ta trong việc thực hiện thay thế văn bản bằng dòng lệnh. Bạn có thể thực hiện như sau:
Lệnh sed replace chuỗi trong 1 file
VD: Sử dụng sed để replace chuỗi “example” thanh “vinascript”
Trên Linux
sed -i 's/example/vinasupport/g' /path/to/file.txt
Trên MacOS
sed -i '' 's/example/vinasupport/g' /path/to/file.txt
Trên Windows
powershell -Command "(gc myFile.txt) -replace 'example', 'vinasupport' | Out-File -encoding ASCII myFile.txt"
Trường hợp bạn không muốn nhớ cú pháp của command này thì có thể viết nó thành file bash để chạy.
Bash script replace chuỗi trong 1 file
Tạo 1 file replace.sh có nội dung như sau:
#!/usr/bin/env bash file=temp/vinasupport.sql text_from=https://vinasupport.com text_to=https://vinasupport.com.com # Escaping slash text_from=$(echo $text_from | sed 's///\//g') text_to=$(echo $text_to | sed 's///\//g') # Process replace string sed -i '' "s/${text_from}/${text_to}/g" $file echo "Replace string in file ${file}"
Thêm quyền execute cho file replace.sh
sudo chmod +x replace.sh
Để chạy file các bạn làm như sau:
./replace.sh