상위 폴더에는 내부에 여러 폴더가 있습니다. 각 폴더에는 "text.txt"라는 텍스트 파일이 있습니다. 모든 폴더의 텍스트 파일은 유사하며 각각 100줄과 숫자 열을 포함합니다. 예
cat /folder1/text1.txt
1654
1684
535
35131
.
.
command 을 사용하여 이러한 모든 텍스트 파일을 하나의 파일에 있는 열로 병합하고 싶습니다 paste
. 상위 폴더에서 명령을 실행했습니다.
paste ./*/text*.text > all_text.txt # the content for all_text.txt is as follow:
cat all_text.txt
1654 354531 ....
1684 224
535 2424
35131 24
.
.
.
붙여넣은 각 열의 헤더로 폴더 이름을 추가하여 다음 출력을 얻으려면 어떻게 해야 합니까?
cat all_text.txt
folder#1 folder #2 .....
1654 354531
1684 224
535 2424
35131 24
.
.
.
답변1
set
각 배열 요소에 매개변수 확장을 사용하여 디렉토리 이름만 인쇄할 수 있습니다 .
set -- */text.txt
{ printf ' %s' "${@%/*}" | cut -c2-; paste -- "$@"; }
# this blank ^ is a literal tab