29 lines
392 B
Bash
Executable File
29 lines
392 B
Bash
Executable File
#! /bin/sh
|
|
|
|
filter="$1"
|
|
src="$2"
|
|
dest="$3"
|
|
|
|
root="$(pwd)"
|
|
|
|
rm -r "$dest"
|
|
rsync -a --exclude '.*' "$src" "$dest"
|
|
|
|
files="$(find "$dest" -type f)"
|
|
|
|
for file in $files; do
|
|
file "$file" | grep -q 'text' || continue
|
|
cd "$(dirname "$file")" || exit 1
|
|
|
|
file="$(basename "$file")"
|
|
|
|
exec 3< "$file"
|
|
rm "$file"
|
|
|
|
sh -c "$filter" <&3 > "$file"
|
|
|
|
exec 3>&-
|
|
|
|
cd "$root"
|
|
done
|