파일 이름이 포함된 파일을 사용하여 단일 디렉터리에 다른 파일을 만들려고 합니다. 예를 들어, 파일에 다음이 포함되어 있는 경우
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