여러 파일의 데이터를 단일 파일에 추가하는 방법은 무엇입니까?

여러 파일의 데이터를 단일 파일에 추가하는 방법은 무엇입니까?

예: 파일이 있고 01.txt02.txt파일의 데이터를 새 파일에 추가해야 합니다 new.txt.

01.txt뒤에 있는 파일을 기반으로 데이터를 추가해야 합니다 02.txt.

이전에는 파일( 01.txt 02.txt)의 첫 번째 줄과 마지막 줄만 삭제한 다음 새 파일에 추가해야 했습니다.

UNIX를 사용하여 이를 어떻게 달성합니까?

답변1

또 다른 방법:

for file in 01.txt 02.txt; do sed '1d;$d;' "$f"; done > output

이는 많은 파일을 연결해야 하는 경우 특히 유용합니다.

for file in *.txt; do ...

셸 확장을 사용할 수도 있습니다.

for file in 0{1,2}.txt; do ...

답변2

sed를 사용하여 첫 번째 줄과 마지막 줄을 삭제할 수 있습니다.

sed -e '1d' -e '$d' file1 > output
sed -e '1d' -e '$d' file2 >> output
sed -e '1d' -e '$d' file3 >> output

답변3

파일의 첫 번째 줄을 제외한 모든 내용을 인쇄하는 쉬운 방법은 다음과 같습니다.tail:

tail -n +2 01.txt

파일의 마지막 줄을 제외한 모든 내용을 인쇄하려면 다음을 사용하십시오.head:

head -n -1 01.txt

따라서 이 모든 것을 하나로 모아서 첫 번째 줄과 마지막 줄을 제외한 모든 항목을 인쇄하고 01.txt다른 02.txt이름으로 저장하려면 다음을 03.txt사용할 수 있습니다.서브쉘위 명령의 출력을 두 파일로 병합합니다.

(tail -n +2 01.txt | head -n -1; tail -n +2 02.txt | head -n -1) > new.txt

답변4

GNU 사용 sed:

sed -s '1d;$d' ./*.txt > output

*.txt참고: 출력 파일의 이름이 와일드카드 패턴( 위) 과 일치하지 않는지 확인하려고 합니다 . 그렇지 않으면 다음과 같이 작성해야 합니다.

sed -sn '1d;$d;w output.txt' ./*.txt

( output.txt이전에 존재하지 않았다고 가정).

관련 정보