이름이 숫자가 아닌 많은 파일에 붙여넣기 명령을 사용하는 방법은 무엇입니까? (각 파일의 열을 하나의 파일에 붙여넣기)

이름이 숫자가 아닌 많은 파일에 붙여넣기 명령을 사용하는 방법은 무엇입니까? (각 파일의 열을 하나의 파일에 붙여넣기)

이름이 증분 숫자인 여러 파일을 붙여넣으려면 다음을 수행합니다.

paste {1..8}| column -s $'\t' -t
  • 파일 이름이 숫자가 아닌 단어로만 지정되어 있다면 어떻게 될까요?
  • 최대 10개의 파일이 있을 수 있는데 어떻게 해야 하나요?

또한 원하는 모든 파일이 포함된 파일 목록이 있습니다.

지금까지 나의 접근 방식은 다음과 같습니다.

mkdir paste
j=0; while read i; do let j+=1; cp $i/ paste/$j; done<list;
cd paste; paste {1..8}| column -s $'\t' -t

이 접근 방식에는 문제가 없습니다. 더 짧은 방법이 있는지 묻고 있습니다.


실제로 내 파일은 위치만 다를 뿐 동일한 이름을 갖습니다 1MUI/PQR/A/sum, 2QHK/PQR/A/sum, 2RKF/PQR/A/sum. 예를 들어 , 목록 파일은 paste다음과 같습니다 .paste {list}/PQR/A/sum

1MUI
2QHK
2RKF
...

답변1

bash4 개로

mapfile -t <list
paste "${MAPFILE[@]}" | column -s $'\t' -t

paste {list}/PQR/A/sum해당 버전의 경우

mapfile -t <list
paste "${MAPFILE[@]/%//PQR/A/sum}" | column -s $'\t' -t    

답변2

모든 파일이 단일 디렉토리에 있으면 다음을 사용하십시오.

paste * | column -s $'\t' -t

모든 파일이 포함된 목록 파일이 있고 각 파일 이름이 공백과 같은 특수 문자 없이 한 줄에 있는 경우 다음을 시도해 볼 수 있습니다.

paste $(printf "%s " $(cat list)) | column -s $'\t' -t

고쳐 쓰다

업데이트된 정보에 따라 다음을 시도해 볼 수 있습니다.

paste */PQR/A/sum | column -s $'\t' -t

상위 디렉터리에 필요하지 않은 파일과 디렉터리가 많이 포함된 경우 모든 디렉터리를 명시적으로 나열해야 합니다.

paste {1MUI,2QHK,2RKF,...}/PQR/A/sum | column -s $'\t' -t

관련 정보