[20220329]批量修改檔名.txt
[20220329]批量修改檔名.txt
--//工作需要需要修改檔名,例子如下:
D:\tmp\xxx>dir /b
0001.aaa
0001.bbb
0001.ccc
0001.d d
--//前面的0001重新編號,使用0001,0002,0003,0004代替.在windows下操作有一點難度,測試看看.
D:\tmp\xxx>dir /b | sed -e "s+^+mv \"+" -e "s+$+\"+
mv "0001.aaa"
mv "0001.bbb"
mv "0001.ccc"
mv "0001.d d"
D:\tmp\xxx>dir /b | sed -e "s+^0001+\"@+" -e "s+$+\"+
"@.aaa"
"@.bbb"
"@.ccc"
"@.d d"
--//有點奇怪的是sed在windows下最後不能重定向到檔案.
D:\tmp\xxx>dir /b | sed -e "s+^0001+\"@+" -e "s+$+\"+ > a1.txt
sed: -e expression #2, char 8: Unknown option to 's'
--//少寫一個引號".昏前面少寫引號也能通過.
dir /b | sed -e "s+^0001+\"@+" -e "s+$+\"+" > a1.txt
--//建立如下文字:
mv "0001.aaa" "@.aaa"
mv "0001.bbb" "@.bbb"
mv "0001.ccc" "@.ccc"
mv "0001.d d" "@.d d"
--//在vim下執行,注意要安裝Increment外掛.
:%Inc s1 i1 w4 f0
--//執行後變成如下:
mv "0001.aaa" "0001.aaa"
mv "0001.bbb" "0002.bbb"
mv "0001.ccc" "0003.ccc"
mv "0001.d d" "0004.d d"
--//然後執行它就ok了.
D:\tmp\xxx>a1
D:\tmp\xxx>mv "0001.aaa" "0001.aaa"
mv: `0001.aaa' and `0001.aaa' are the same file
D:\tmp\xxx>mv "0001.bbb" "0002.bbb"
D:\tmp\xxx>mv "0001.ccc" "0003.ccc"
D:\tmp\xxx>mv "0001.d d" "0004.d d"
--//windows下還有什麼簡單的方法呢.
--//在windows執行如下:
D:\tmp\xxx>dir /b | xargs -iQ echo mv Q Q
0001.aaaaa
0002.bbbbb
0003.ccccc
0004.d d d
--//什麼這樣.奇怪.在一行完成有一些困難.
D:\tmp\xxx>for /F "delims==" %i in ('dir /b 0001.*') do @echo mv "%i" "%i" | sed "s/0001/@/2"
mv "0001.aaa" "@.aaa"
mv "0001.bbb" "@.bbb"
mv "0001.ccc" "@.ccc"
mv "0001.d d" "@.d d"
--//在vim下執行,注意要安裝Increment外掛.
:%Inc s1 i1 w4 f0
--//linux下如下執行呢?感覺差不多,放棄測試.
--//再看看前面使用xargs 什麼回事.哦想起來了,回車換行問題,這是windwows的文字的預設模式..
--//要給檔名加入引號,再次看到windows的變態模式,一定要寫成如下,我自己都看不明白^_^.
D:\tmp\xxx>dir /b | xargs -iQ echo -e mv "\""""""Q\""""""" "\""""""Q\""""""" | tr -d "\r"
mv "0001.aaa" "0001.aaa"
mv "0001.bbb" "0001.bbb"
mv "0001.ccc" "0001.ccc"
mv "0001.d d" "0001.d d"
mv "0001eee" "0001eee"
--//實際上相當於傳入的引數時0001.aaa\r,在開始處理刪除\r字元更加合理方便一些.
D:\tmp\xxx>dir /b | tr -d "\r" | xargs -iQ echo -e "mv \""""""Q\""""""" \"""""""Q\"""""""
mv "0001.aaa" "0001.aaa"
mv "0001.bbb" "0001.bbb"
mv "0001.ccc" "0001.ccc"
mv "0001.d d" "0001.d d"
mv "0001eee" "0001eee"
--//簡單一點就是沒輸出雙引號,你就再加一個雙引號直到出現為止.
總結:
--//再次提醒自己以後給注意windows下xargs -iQ 接受的引數帶有\r字元。
--//其它情況通過管道接收的字串也要注意這個問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2884440/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java批量修改檔名Java
- Linux rename命令批量修改檔名Linux
- Windows修改新建.txt檔名Windows
- win10批量修改檔名的步驟_win10如何批量修改檔名Win10
- 批量修改檔名的bash指令碼指令碼
- Linux 批量修改檔案字尾名Linux
- Python批量修改檔名和檔案型別Python型別
- 快速批量修改檔名[機器學習]機器學習
- node實現檔案屬性批量修改(檔名)
- 利用Python快速批量修改資料集檔名Python
- 在Linux中使用mmv命令批量修改檔名稱Linux
- Python新手教程:辦公小能手,使用Python批量修改檔名!Python
- [20220329]windows xcopy命令問題.txtWindows
- 快速修改檔名稱的方法,自動批量給檔案重新命名
- 批量修改OC類名指令碼 -- python指令碼Python
- 檔名提取、修改
- 批量處理檔名稱(上)
- Git修改檔名稱Git
- 批次修改副檔名
- iOS使用Shell指令碼批量修改類名稱iOS指令碼
- [20220329]是否開發寫錯sql語句.txtSQL
- python 批量給檔名新增字尾Python
- 批量提取資料夾內檔名
- [20220329]19c sql語句打補丁.txtSQL
- 批量修改檔案中的圖片名稱
- win10如何批量檔案字尾修改_win10怎麼批量修改字尾Win10
- win10怎樣統一改檔案字尾_win10如何批量修改副檔名Win10
- git修改檔案的名稱Git
- WPS 修改新建office 檔名稱
- webpack打包時如何修改檔名Web
- 如何用Python批次修改檔名?Python
- win10批次修改檔名的步驟_win10如何批次修改檔名Win10
- Android與Python之批量修改AndroidManifest.xml檔案AndroidPythonXML
- Linux修改檔名命令是什麼?Linux
- 修改 bam 檔案中染色體名
- find 批次修改檔案後輟名
- 技能分享:副檔名怎麼修改?
- 使用mmv命令批次修改檔名稱