저는 Unix를 처음 접했고 이 루프를 실행하는 데 문제가 있습니다.
파일 목록이 포함된 디렉터리가 있고 모든 파일을 텍스트 파일에 나열할 수 있습니다.
다음 내용이 포함된 텍스트 파일이 있습니다.
- 파일명 01.xml
- 파일명 02.xml
- 파일명 03.xml
- 파일 이름 NN.xml
콘텐츠별로 별도의 텍스트 파일을 만들고 싶습니다. 출력은 다음과 같아야 합니다.
- 텍스트 파일의 파일명 : Filename01.txt - 텍스트 파일의 내용 : FileName01.xml
기타 등등
for 루프를 사용하여 각 콘텐츠에 대한 텍스트 파일을 만들려고 하는데 성공하지 못하는 것 같습니다.
현재 작성 중인 스크립트는 다음과 같습니다.
#!/bin/bash
ls /directory/input > filelist.txt
for f in filelist.txt;
do
printf f > 'file_*.txt'
done
답변1
나는 추천한다
#!/bin/bash
shopt -s nullglob
for f in /directory/input/*.xml; do
bn=${f##*/}
printf '%s\n' "$bn" > "${f%.xml}.txt"
done
바라보다쉘 매개변수 확장접두사 및 접미사 제거 구문에 대한 지침입니다.