디렉토리에 있는 각 파일에 대한 텍스트 파일을 만드는 방법은 무엇입니까?

디렉토리에 있는 각 파일에 대한 텍스트 파일을 만드는 방법은 무엇입니까?

저는 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

바라보다쉘 매개변수 확장접두사 및 접미사 제거 구문에 대한 지침입니다.

관련 정보