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