2012-09-17 72 views

回答

0

無需sedawk,只是bash參數擴展:

for f in *.txt 
do 
    dest=${f#kkk} 
    dest=${dest%_A.txt}.txt 
    mv "$f" "$dest" 
done 
1

sedawk對文件的內容進行操作,而不是對其名稱進行操作。你可以只用mv在一個循環:

for file in kkk*.txt ; do 
    new=${file#kkk} 
    mv "${file}" "${new%_A.txt}.txt" 
done 
0

這可能會爲你工作(GNU SED):

printf "%s\n" * | sed 'h;s/kkk\([^_]*\)_A/\1/;H;g;s/^\(.*\)\n/mv -v \1 /e' 
相關問題