[英]rename files to remove extension on multiple files in linux using a find and exec command
[英]Linux : Copy Multiple files and remove it's extension
我有一個包含* .cpp.So類型文件的目錄。我想復制目錄中的每個文件並使用它將其粘貼到同一目錄中
cp -a *.cpp
可以選擇在粘貼時刪除.cpp。這可能嗎?
這是一個簡單的bash腳本。 此腳本假定文件名僅包含一個“。” 基於此的角色和分裂。
#!/bin/sh
for f in *.cpp; do
#This line splits the file name on the delimiter "."
baseName=`echo $f | cut -d "." -f 1`
newExtension=".new"
cp $f $baseName$newExtension
done
您可以通過bash參數擴展來執行此操作,如bash手冊中所述:
$ {parameter %% word}刪除匹配的后綴模式。 這個詞被擴展為產生一個模式,就像路徑名擴展一樣。 如果模式匹配參數展開值的尾部,則擴展的結果是參數的擴展值,具有最短匹配模式(“%”'大小寫)或最長匹配模式(“%” %''案例)已刪除。
...
for i in *.cpp
do
cp -a $i ${i%%.cpp}
done
可以使用重命名 ,可選地使用-f強制重寫現有文件。
rename -f 's/\.ext$//' *.ext
要預覽操作,但不要更改文件,請使用-n開關(無操作)。
這不是復制,但移動:-(
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.