ファイル名を含むファイルを使用して、1つのディレクトリに異なるファイルを作成しようとしています。たとえば、ファイルに
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