簡體   English   中英

如何使用Shell將字符串添加到另一個目錄中文件集合名稱的開頭

[英]How do I add a string to the beginning of the name of a collection of files in another directory using shell

我在文件夾project / reports中有一堆.xml文件。 在“項目”文件夾中,我需要在“報告”文件夾中的每個.xml文件前添加字符串“ TEST-”。 我知道每個.xml文件都將以相同的字符串開頭,並以.xml結尾,但是我不知道中間位置。 我該怎么做呢?

即。 原始文件:constantfilename.xml,新文件:TEST-constantfilename.xml

我無法對測試名稱進行硬編碼,它只需要能夠將字符串添加到擴展名為.xml的文件夾中的所有文件中即可。 我已經看到了很多重命名當前文件夾中文件的方法,如下所示:

for f in *.xml
do
    mv "$f" "TEST-$f"
done

但是當我需要從另一個目錄更改它們時,我不明白如何應用此功能。

任何幫助將不勝感激! 在有人問之前,不,我不能僅瀏覽到該文件夾​​,它必須來自“ project”文件夾。

經過大量的谷歌搜索后,我最終做到了這一點。 它查找我知道在文件開頭的字符串常量,並將其替換為TEST常量。

for f in project/reports/*.xml
do
    a="$(echo $f | sed s/constant/TEST-constant/)"
    mv "$f" "$a"
done

您可以使用以下單行代碼(假設您位於項目文件夾中):

ls reports/*xml | awk -F '/' '{print "mv "$0" "$1"/TEST-"$2}' | sh

不如您的干凈,但是應該給出相同的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM