여러 txt 파일의 데이터를 순차적으로 단일 txt 파일로 복사하는 방법 [닫기]

여러 txt 파일의 데이터를 순차적으로 단일 txt 파일로 복사하는 방법 [닫기]

나는 cat *.txt >> output.txt 코드를 사용했습니다. 이 코드가 수행하는 작업은 해당 작업이지만 여기에서는 유닉스가 파일을 내 출력 파일에 복사할 순서를 결정합니다. 이는 파일의 발생 또는 생성 시간을 기준으로 파일을 복사하기를 원하기 때문에 바람직하지 않습니다. 또한 복사 형식을 제어할 수 있도록 다음 명령을 사용했습니다.

for tablename in 'cat ${current_path}/table.txt(have defined the order)

do 

for data in 'cat path/$tablename.txt

do 
echo "$data" >> final/output.txt

done

done 

여기서는 작업을 수행하지만 for 루프가 작동하기 때문에 단일 txt의 여러 복사본을 생성합니다.

답변1

내가 질문을 이해했다고 가정하자

   xargs < "${current_path}/table.txt" cat > final/output.txt

당신이 필요한 전부입니다. xargs"table.txt" 파일을 읽고 cat지정된 순서대로 실행하여 표준 출력으로 출력한 다음 표준 출력을 원하는 위치로 리디렉션합니다. 리디렉션은 파일이 실행되기 전에 한 번만 실행되므로 여러 번 xargs실행되는 파일이 많은 경우 에도 cat작동합니다 .catxargs

시간순으로 정렬하고 싶다면

   ls -t | xargs cat > final/output

어색한 파일 이름(공백이나 줄 바꿈 등)이 없으면 작동합니다.

답변2

for tablename in $(cat ${current_path}/table.txt);do
  for word in $(cat path/${tablename}.txt);do
    echo ${word}
  done
done > final/output.txt

이것은 작동합니다. 무슨 뜻인지 잘 모르겠습니다

여기서는 작업을 수행하지만 for 루프가 작동하기 때문에 단일 txt의 여러 복사본을 생성합니다.

좀 더 자세히 알아볼 수 있나요?


- 편집 - 아래 제안 사항을 따르십시오.

관련 정보