2013-06-07 4 views
0

어떻게 내가 하나의 '큰'파일로 여러 파일을 병합 한 후 파일 이름과 경로를 포함 할 하나의 '큰'파일에 작성 후 파일 이름과 경로를 포함?여러 파일을 읽고

예를 들어, 나는 디렉토리 /temp/Errors/에있는 파일을 TestMessage1.txt to TestMessage5.txt 있습니다. 이 파일의 내용은 Hello, this is test message 1 to Hello, this is test message 5입니다. TestMessage5.txt에 TestMessage1.txt 병합

꽤 똑바로 앞으로 출력 파일에서 cat * > outputfile.txt

을 사용하고 내가 얻을 :

Hello, this is test message 1 
Hello, this is test message 2 
Hello, this is test message 3 
Hello, this is test message 4 
Hello, this is test message 5 

어떻게 같이 내 출력 파일을받을 수 있나요 :

사전에
/temp/Errors/TestMessage1 : Hello, this is test message 1 
/temp/Errors/TestMessage2 : Hello, this is test message 2 
/temp/Errors/TestMessage3 : Hello, this is test message 3 
/temp/Errors/TestMessage4 : Hello, this is test message 4 
/temp/Errors/TestMessage5 : Hello, this is test message 5 

감사

답변

4

U 자체 grep :

grep "" * > outputfile.txt 

사용, 파일의 전체 경로를 원하는 경우 :

grep "" /temp/Errors/* > outputfile.txt 

당신이 sed 대신 :,, 파이프를 원하는 경우 :

grep "" /temp/Errors/* | sed 's/:/,/'> outputfile.txt 
+0

감사합니다 ..이 grep 명령이 파일에 모든 일치 및 인쇄됩니다 내가 – Chor419

+0

을 찾고 있어요 정확히 저를 준다 (는 쉼표 대신 세미콜론과 전체 경로의 여러 라인 편집) 그것을 파일 이름과 함께 출력합니다. 시도 해봐. – dogbane

+0

':'는 파일 이름과 파일 내용을 구분하는 데 쓰이며 대신','를 사용할 수 있습니다. 이 grep 명령은 출력물에 더 많은 융통성을 원한다면 – Chor419

1

을 할 수

for i in * ; do 
    while read line ; do 
     full=$PWD/$i 
     echo "$full , $line" 
    done < $i 
done 
: A (bash는) 스크립트와 함께 할 수

이 솔루션의 장점은 grep보다 유연하다는 것입니다.

+0

이것은 파일의 첫 번째 줄 옆에만 파일 이름을 출력하며 모든 줄에는 출력하지 않습니다. – dogbane

+0

질문에 지정되지 않았습니다. :) – Guillaume

관련 문제