ファイル名を含むファイルを使用して、単一のディレクトリに別のファイルを作成しようとしています。たとえば、ファイルに次のものが含まれている場合
file1,file2
ディレクトリに file1.md と file2.md という 2 つのファイルが作成されます。
このコマンドを使用していますが、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