in WSL Ubuntu
asset_dir="./src/assets"
code_dir="./src"
find "$asset_dir" -name "*.svg" -o -name "*.png" -o -name "*.gif" |
sed 's@'"$asset_dir"'/@@g' |
xargs -I{} sh -c '
asset_dir="./src/assets"
filename={}
match_count=$(grep -rl "$filename" '$code_dir' | wc -l)
if [ $match_count -eq 1 ]; then
match_file=$(grep -rl "$filename" '$code_dir')
match_dir=$(dirname "$match_file")
echo "$asset_dir"/"$filename" to "$match_dir"
mv "$asset_dir"/"$filename" "$match_dir"
sed -i "s|from ['\''\"]\(\(\.\./\)\+assets/\)\?$filename['\''\"]|from '\''./$filename'\''|" "$match_file"
sed -i "s|url(['\''\"]\(../\)*assets/$filename['\''\"])|url\('\''./$filename'\''\)|" "$match_file"
fi
'