답변:
배쉬 만 사용하기 :
for f in *.txt; do <"$f" read line; printf "$line\n" >>new.txt; done
*.txt
는 .txt
현재 작업 디렉토리에서 끝나는 폴더 / 파일 목록으로 확장됩니다 (끝나는 폴더 .txt
는 걱정할 필요가 없으므로).<"$f" read line
저장된 파일 경로에서 한 줄을 읽고 f
저장합니다 line
.printf "$line\n" >>new.txt
: 내용 추가 line
에를 new.txt
;% cat foo.txt
line #1 in foo
line #2 in foo
line #3 in foo
% cat bar.txt
line #1 in bar
line #2 in bar
line #3 in bar
% for f in *.txt; do <"$f" read line; printf "$line\n" >>new.txt; done
% cat new.txt
line #1 in bar
line #1 in foo
AWK를 사용하는 또 다른 방법은 AWK에 인쇄하도록 지시 한 다음 즉시 다음 파일로 이동하는 것입니다.
tmp:$ touch file1 file2 file3
tmp:$ printf "Line 1 \n Line 2" | tee file1 file2 file3
Line 1
Line 2
tmp:$ awk '{print;nextfile}' file1 file2 file3
Line 1
Line 1
Line 1
sed
또한 특정 라인을 인쇄 할 수 있습니다. 여기에 그것을 결합했습니다find
tmp:$ find . -name "file*" -exec sed -n '1p' {} \;
Line 1
Line 1
Line 1
그리고 펄 :
tmp:$ find . -name "file*" -exec perl -ne 'print if 1..1' {} \;
Line 1
Line 1
Line 1
그리고 마지막으로 grep
tmp:$ grep -n 1 file1 file2 file3
file1:1:Line 1
file2:1:Line 1
file3:1:Line 1
모든 것을 단일 파일에 저장하는 것은 > outputFile.txt
이 명령의 끝에 추가하기 만하면 됩니다.