2012-07-12 2 views
2

디렉토리에 여러 파일이 있습니다. 디렉토리를 살펴보고 각 파일의 마지막 줄을 하나의 새 파일에 넣고 싶습니다. IE에서이 새로운 파일은 디렉토리의 모든 파일의 마지막 행을 포함해야합니다. 나는 사용하려고 시도했다.여러 파일의 마지막 줄을 단일 파일로 복사

tail -n 1 | cat > newfile.txt 

그러나 각 줄 사이에 소스 파일 이름을 삽입했다. 쉘 스크립트 작성도 시도했지만 성공적으로 수행 한 유일한 방법은 대상 파일을 작성한 다음 데이터를 추가하지 않고 무기한 실행하는 것뿐입니다. 이 작업을 수행하는 적절한 방법은 무엇입니까? 어떤 도움이라도 대단히 감사합니다.

답변

2

을 그렇게 간단하지가 출력 헤더를 수행하는 -q 플래그를 가지고 :

tail -q -n1 * > OUTFILE 

.

3

사용 find :

find . -type f -exec tail -n1 {} >> newfile.txt \; 

또는 하위 디렉토리 통과하지 않으려는 경우 : 적어도 coreutilstail

find . -depth 1 -type f -exec tail -n1 {} >> newfile.txt \; 
2

find 작동하지만 sh/bash/ksh/zsh 인 경우 for 루프도 작동합니다. newfile.txt 당신이 *에 루프 당신을 실행하는 동일한 디렉토리에있는 경우이와 이상한 결과를 얻을 수 있습니다

for filename in *; do 
    tail -n 1 "$filename" >> /path/to/newfile.txt 
done 

참고.

관련 문제