উত্তর:
কিছুটা লুপের জন্য একটি সহজ sed
কৌশলটি করবে:
% touch xxxxx{foo,bar,baz}
% ls -l xxxxx{foo,bar,baz}
-rw-r--r-- 1 jamesog wheel 0 29 Dec 18:07 xxxxxbar
-rw-r--r-- 1 jamesog wheel 0 29 Dec 18:07 xxxxxbaz
-rw-r--r-- 1 jamesog wheel 0 29 Dec 18:07 xxxxxfoo
% for file in xxxxx*; do mv $file $(echo $file | sed -e 's/^.....//'); done
% ls -l foo bar baz
-rw-r--r-- 1 jamesog wheel 0 29 Dec 18:07 bar
-rw-r--r-- 1 jamesog wheel 0 29 Dec 18:07 baz
-rw-r--r-- 1 jamesog wheel 0 29 Dec 18:07 foo
বিকল্প Regex মধ্যে sed
কোনো পাঁচটি অক্ষর (মেলে বলেছেন .
স্ট্রিং (শুরুতে মানে কোনো চরিত্র) ^
) এবং এটা মুছে ফেলুন।
বাশের কিছু স্ক্রিপ্টিং সম্ভাবনা রয়েছে। এখানে একটি উপায়:
for file in ??????*; do mv $file `echo $file | cut -c6-`; done
এটি কী করবে তা পরীক্ষা করার একটি সহজ উপায় হ'ল কমান্ডের সামনে একটি প্রতিধ্বনি যুক্ত করা:
for file in ??????*; do echo mv $file `echo $file | cut -c6-`; done
ছয়টি প্রশ্ন চিহ্ন নিশ্চিত করে যে আপনি কেবল 5 টির চেয়ে বেশি অক্ষরের ফাইলনামগুলিতে এটি করার চেষ্টা করেছেন।