使用 bash 使用包含檔案名稱的文件建立多個文件

使用 bash 使用包含檔案名稱的文件建立多個文件

我正在嘗試使用包含文件名的文件在單一目錄中建立不同的文件。例如,如果文件包含

file1,file2

它將在目錄中建立兩個檔案 file1.md 和 file2.md。

我正在使用該命令touch {$(cat file)}.md,但這會建立一個檔案 file1,file2.md

答案1

您可以使用換行符號替換逗號tr並將結果讀入陣列:

mapfile -t fnames < <(tr ',' '\n' < file)
touch "${fnames[@]/%/.md}"

參數擴展${fnames[@]/%/.md}將每個數組元素的末尾 ( %) 替換為後綴.md

答案2

只需將逗號轉換為換行符,然後讀取檔案名稱:

sed 's/,/\n/g' file | while read fileName; do touch "$fileName".md; done

或者:

tr , '\n' < file | while read fileName; do touch "$fileName".md; done

答案3

你可以嘗試這樣的事情:

tr ',' '\n' < file | xargs -0 -I {} touch {}.md

相關內容