0

大きな助けが必要です。私はこれに完全に固執しています。ディレクトリ内のすべてのファイルを(再帰的に)ループし、ファイルのリストを出力しています。何かのようなもの:

# srcDir="input received from command line"
# tgtDir="input received from command line"

for listItem in `find ${srcDir}`
do
    if [[ -f ${listItem} ]]
    then
        echo ${listItem} # **** what to put here ****
    fi
done

リストを印刷するときに、ファイルのパスをsrcDirからtgtDirに置き換えたいと思います。何かのようなもの:

# let's assume that srcDir="/home/user"
# and tgtDir="/tmp/guest"
# srcDir has the following structure
file1.txt
dir1_1/file1a.txt
dir1_1/file1b.txt

# so the actual output of the script will be
/home/user/file1.txt
/home/user/dir1_1/file1a.txt
/home/user/dir1_1/file1b.txt

# but I want it to print as
/tmp/guest/file1.txt
/tmp/guest/dir1_1/file1a.txt
/tmp/guest/dir1_1/file1b.txt

私はあなたがその考えを理解したことを望みます。ご意見をお聞かせください。

4

1 に答える 1

1

bash文字列操作の仕事のように見えます:

srcDir="/home/user"
tgtDir="/tmp/guest"
listItem="/home/user/file1.txt"
echo ${listItem/$srcDir/$tgtDir}
于 2011-07-09T23:15:13.110 に答える