मैं उन फ़ाइलों के आकार को निर्धारित करने की कोशिश कर रहा हूं, जिन्हें सूखी मोड में rsync चलाकर दो फ़ोल्डरों को सिंक करने पर नई कॉपी की जाएगी और फिर rsync के आउटपुट में सूचीबद्ध फाइलों के आकार को संक्षेप में प्रस्तुत किया जाएगा।
वर्तमान में मैं उनके पैरेंट फोल्डर द्वारा फाइलों को उपसर्ग करने पर अटक गया हूं। मुझे पता चला कि कैसे sed का उपयोग करके लाइनों को उपसर्ग करना है और कैसे sed का उपयोग करके बचना है, लेकिन मुझे उन दोनों के संयोजन में परेशानी हो रही है।
यह है कि मैं कितनी दूर है:
source="/my/source/folder/"
target="/my/target/folder/"
escaped=`echo "$source" | sed -e 's/[\/&]/\\//g'`
du `rsync -ahnv $source $target | tail -n +2 | head -n -3 | sed "s/^/$escaped/"` | awk '{i+=$1} END {print i}'
यह मैं bash -x myscript.sh से प्राप्त आउटपुट है
+ source=/my/source/folder/
+ target=/my/target/folder
++ echo /my/source/folder/
++ sed -e 's/[\/&]/\//g'
+ escaped=/my/source/folder/
+ awk '{i+=$1} END {print i}'
++ rsync -ahnv /my/source/folder/ /my/target/folder/
++ sed 's/^//my/source/folder//'
++ head -n -3
++ tail -n +2
sed: -e expression #1, char 8: unknown option to `s'
+ du
80268
कैसे ठीक से भागने के लिए किसी भी विचार अत्यधिक सराहना की जाएगी।