我正在嘗試使用包含文件名的文件在單一目錄中建立不同的文件。例如,如果文件包含
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