두 파일의 내용을 ooo.txt
.
grep
또한 두 번째 파일의 일부 특정 줄 (이 경우 처음 5줄과 마지막 25줄) 만 사용하고 싶습니다.'ㅋ') 괄호 없음
이것은 내가 사용하는 명령입니다:
cat [file1] && cat [file2] | grep "lol" -B 5 -A 25 > ooo.txt
file 2
불행하게도 파일에는 내용만 기록됩니다 ooo.txt
(그러나 grep
명령은 준수됩니다).
이 문제를 어떻게 해결할 수 있나요?
답변1
이러한 명령은 설계된 대로 정확하게 작동합니다.
첫 번째:
cat [file1]
출력을 file1
으로 보냅니다 stdout
.
다음:
&&
이전 콘텐츠가 실행한 종료 상태라면 다음 콘텐츠를 실행하라고 지시합니다 0
.
마침내,
cat [file2] | grep "lol" -B 5 -A 25 > ooo.txt
out as to를 사용한 stdout
다음 해당 출력을 ooo.txt 파일로 리디렉션하는 데 사용합니다.cat [file2]
stdin
grep "lol" -B 5 -A 25
> ooo.txt
원하는 것을 얻을 수 있는 몇 가지 방법은 다음과 같습니다.
첫 번째 명령은 첫 번째 cat
명령에 리디렉션을 추가하고 거기서부터 시작됩니다. 파일이 존재하지 않거나 비어 있다고 가정합니다.
cat [file1] > ooo.txt && cat [file2] | grep "lol" -B 5 -A 25 >> ooo.txt
파일이 이미 존재하고 비어 있지 않은 경우 다음을 추가하기만 하면 됩니다.
cat [file1] >> ooo.txt && cat [file2] | grep "lol" -B 5 -A 25 >> ooo.txt
덜 복잡한 명령도 작동합니다.
{ cat [file1]; cat [file2] | grep "lol" -B 5 -A 25; } > ooo.txt
;
두 명령 cat
사이와 grep
뒤의 중괄호는 모든 명령의 출력을 파일로 리디렉션합니다 ooo.txt
. 콘텐츠가 파일에만 추가되는 경우 >>
대신 사용하세요.>
답변2
원하는 대로 작동해야 합니다.
cat [파일 1] <(cat [파일 2] | grep "lol" -B 5 -A 25) > ooo.txt