Unix에서 여러 파일의 내용을 하나의 파일에 쓰는 방법은 무엇입니까?

Unix에서 여러 파일의 내용을 하나의 파일에 쓰는 방법은 무엇입니까?

디렉토리에 다음과 같은 파일이 있다고 가정합니다.

file1.txt  
file2.txt
file3.txt
file4
file5
fab
text1 

확장자가 있는 파일을 제거 .txt하고 파일 이름이 다음으로 시작하는 나머지 파일의 내용을 추가 해야 합니다.문서( file4, file5)를 단일 파일로 묶습니다.

다음 명령을 시도했지만 5개의 ​​파일 내용을 모두 하나의 파일에 추가합니다.

ls -ltr file*|grep -vE ".txt" | cat * > final

답변1

가능한 경우 bash다음을 사용할 수 있습니다.

shopt -s extglob
cat !(*.txt) > final

또는 다음을 사용하십시오 zsh.

setopt extended_glob
cat ^*.txt > final

답변2

찾다. ! -name '*.txt' | xargs 고양이 >> 최종

답변3

이 시도

#!/bin/bash

find . -name '*.txt' -exec rm {} +

for f in file*
do
    cat $f >> final_file
done

파일을 삭제하지 말고 한 줄로 .txt무시하십시오.cat

$ find . -name 'file*' ! -name '*.txt' -exec cat {} \; > final

관련 정보