我有这个脚本的问题。该脚本应该遍历所有文件以及所有子目录和子文件(递归)。如果文件以扩展名 .txt 结尾,我需要用新的字符/单词替换文本中的字符/单词,然后将其复制到现有目录中。第一个参数是我需要开始搜索的目录,第二个是旧的 char/word,第三个是新的 char/word,第四个是要将文件复制到的目录。该脚本遍历文件,但仅进行替换并从原始目录复制文件。这是脚本
#!/bin/bash
funk(){
for file in `ls $1`
do
if [ -f $file ]
then
ext=${file##*.}
if [ "$ext" = "txt" ]
then
sed -i "s/$2/$3/g" $file
cp $file $4
fi
elif [ -d $file ]
then
funk $file $2 $3 $4
fi
done
}
if [ $# -lt 4 ]
then
echo "Need more arg"
exit 2;
fi
cw=$1
a=$2
b=$3
od=$4
funk $cw $a $b $od