나는 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
작동합니다 .cat
xargs
시간순으로 정렬하고 싶다면
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의 여러 복사본을 생성합니다.
좀 더 자세히 알아볼 수 있나요?
- 편집 - 아래 제안 사항을 따르십시오.