大家好,我想把檔案夾以及子檔案夾里所有.jpg后面有?sign的圖片修改檔案名稱,類似于20180405095522_44158.jpg?sign=924ca3be4ffca6c5fbad798e7e643ab4&t=5ac588d3這樣的檔案名稱修改成20180405095522_44158.jpg。如果沒有帶?sign的圖片不用管,請問用linux命令代碼是怎么寫,由于剛接觸linux,百度也沒找方法。
uj5u.com熱心網友回復:
可以通過管道連接shell和perlfor file in `ls|grep -P "jpg\?sign"`;do echo $file|perl -we 'while (<STDIN>){chomp;rename "$_","$1" if /^(.+)jpg\?sign/;}';done
uj5u.com熱心網友回復:
用python應該不難完成uj5u.com熱心網友回復:
for i in `find /home/user -name *jpg\?s*` ; do b=${i%%\?*} && mv $i $b;done用find 解決子目錄問題并指定絕對路徑,通過字串截取去掉?號后面的字符,做一個mv操作 即修改檔案名。
uj5u.com熱心網友回復:
find 好像找帶符號的檔案不好使,條件可以換成 `find /home/user -name "*jpg*sign*"`
uj5u.com熱心網友回復:
#!/bin/bash
for file in `find /root/chongmingming/ -type f -name '*?sign*'`
do
newfile=`echo $file|cut -f 1 -d "?"`
mv $file $newfile
done
學習中,測驗了一下這個,是好使的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/122492.html
標籤:系統維護與使用區
上一篇:Linux小紅帽修改密碼
下一篇:popen fgets阻塞
