ファイル名を含むファイルを使用してbashを使用して複数のファイルを作成する

ファイル名を含むファイルを使用してbashを使用して複数のファイルを作成する

ファイル名を含むファイルを使用して、単一のディレクトリに別のファイルを作成しようとしています。たとえば、ファイルに次のものが含まれている場合

file1,file2

ディレクトリに file1.md と file2.md という 2 つのファイルが作成されます。

このコマンドを使用していますが、touch {$(cat file)}.mdfile1,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

関連情報