मुझे इस प्रश्न में ऐसा करने का एक तरीका मिला: Inkscape - Command Drawing to Page through Command Line / Terminal
संपादित करने के लिए छवि के रूप में "foo.svg":
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit foo.svg
वर्तमान निर्देशिका में सभी svg छवियों को संपादित करने के लिए:
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileClose *.svg
लेकिन यह दूसरा कमांड एक टन विंडोज़ खोलता है, जो आपके कंप्यूटर को बहुत अधिक छवियों को संपादित करने पर दुर्घटनाग्रस्त कर देगा। केवल लिनक्स के लिए , यह कमांड बेहतर काम करेगा:
for img in $(ls *.svg) ; do inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; done
उपरोक्त कमांड के लिए, यदि कोई भी फाइल सिम्बलिंक है, तो Inkscape उस टारगेट फाइल को एडिट कर देगा जिसे सिमिलिंक इंगित करता है। यदि आप नहीं चाहते हैं कि Inkscape ऐसा करे, तो आप इस आदेश के साथ किसी भी सहानुभूति को फ़िल्टर कर सकते हैं:
for img in $(ls *.svg) ; do if [[ $(readlink $img) == "" ]] ; then inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; fi ; done
जब मैं इस पर होता हूं, तो मैं इसके लिए बनी बैश स्क्रिप्ट को पोस्ट कर सकता हूं:
#!/bin/bash
# inkscape-center <file-or-directory>...
_analyse() {
if [ -d "${1}" ] ; then
_centerAll "${1}" ;
else
_center "${1}" ;
fi
}
_centerAll() {
cd "${1}" ;
for img in $(ls "*.svg") ; do
_filterSyms "${img}" ;
done
}
_filterSyms() {
if [[ $(readlink "${1}") == "" ]] ; then
_center "${1}"
fi
}
_center() {
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit "${1}"
}
for arg ; do
_analyse "${arg}" ;
done
मैंने इसे बुलाया inkscape-center
और इसे इस तरह चलाया:
inkscape-center <file-or-directory>
आप जितना चाहें उतने तर्क देते हैं, इसलिए आप कुछ इस तरह से कर सकते हैं:
inkscape-center 1st.svg 2nd.svg 3rd.svg 4th.svg
सावधान रहें - यदि आप एक फ़ाइल के बजाय एक निर्देशिका निर्दिष्ट करते हैं, तो यह उस निर्देशिका में प्रत्येक svg फ़ाइल को संपादित करेगा।