![.txt 파일의 줄을 사용하여 파일을 만드는 방법은 무엇입니까?](https://linux55.com/image/74182/.txt%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EC%A4%84%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
예를 들어 fileNames.txt라는 파일이 있습니다. cat >fileNames
반품
abet
able
abacus
파일 이름을 사용하여 abet,able 및 abacus를 .txt 파일로 만드는 방법은 무엇입니까? 고양이와 터치로 파이프를 사용해 보았습니다.
답변1
이를 수행하는 방법에는 다음을 포함하여 여러 가지가 있습니다(GNU 가정 xargs
).
sed -e '/^[[:space:]]*$/d' -e 's/$/.txt/' fileNames.txt | xargs -rd '\n' touch --
fileNames.txt의 각 줄에는 파일 이름이 하나만 있다고 가정합니다. 스크립트 sed
는 빈 줄을 제거하고(@rubynorails에게 감사드립니다) 각 파일 이름 끝에 ".txt"를 추가한 후 .txt로 연결합니다 xargs touch
.
이는 사용하여-d '\n'
xargs(공백 대신 구분 기호로 줄 바꿈 또는 '\n'만 사용하고 따옴표 처리를 비활성화하도록 지시하는 GNU 확장) 이름(줄 바꿈 문자 제외)과 함께 옵션을 ). 예를 들어, 행에 "abetable"이 포함되어 있고 포함되어 있지 않으면 두 개의 파일이 생성됩니다( 및 ). 이를 사용하면 하나의 파일만 생성됩니다.xargs
\n
-d '\n'
abet
able.txt
abet able.txt
답변2
읽기 명령을 사용하여 while 루프에서 입력 리디렉션을 사용할 수 있습니다.
while read line; do
touch "${line}.txt"
done < fileNames.txt
답변3
awk 'NF>0' fileNames.txt | while read line; do touch "${line}.txt"; done
이 awk
명령은 빈 줄만 제거합니다.
내가 아는 한, 그 줄은 문자 그대로이므로 그 줄에 있는 모든 내용이 파일 이름에 기록됩니다.