Perintah grep dan sed dapat digunakan untuk melakukan find and replace di Shell Linux atau macOS. Berbeda sistem operasi memiliki sintaks yang berbeda.

Berikut cara melakukan find and replace di satu atau banyak file.

# macOS
# mengganti satu file
sed -i '' -e ’s/oldstring/newstring/g’ example/path/file.txt

# mengganti banyak file
grep -rl oldstring example/path | xargs sed -i '' -e ’s/oldstring/newstring/g’

# linux
# mengganti satu file
sed -i ’s/oldstring/newstring/g’ example/path/file.txt

# mengganti banyak file
grep -rl oldstring example/path | xargs sed -i ’s/oldstring/newstring/g’

Separator perintah sed dapat diganti dengan + atau # jika kata yang ingin kita ganti memiliki karakter /.

# macOS
sed -i '' -e ’s+oldstring+newstring+g’ example/path/file.txt
grep -rl oldstring example/path | xargs sed -i '' -e ’s+oldstring+newstring+g’

sed -i '' -e ’s#oldstring#newstring#g’ example/path/file.txt
grep -rl oldstring example/path | xargs sed -i '' -e ’s#oldstring#newstring#g’

# linux
sed -i ’s+oldstring+newstring+g’ example/path/file.txt
grep -rl oldstring example/path | xargs sed -i ’s+oldstring+newstring+g’

sed -i ’s#oldstring#newstring#g’ example/path/file.txt
grep -rl oldstring example/path | xargs sed -i ’s#oldstring#newstring#g’

Referensi: