내 목표는 핫 단어(무엇을 불러야 할지 모르겠습니다)가 포함된 특정 줄에서 텍스트를 추출하는 것입니다. 매주 업데이트되는 파일이므로 줄 번호가 다를 수 있습니다. 핫 단어가 감지되면 이 줄과 다음의 모든 텍스트를 다른 파일에 복사해야 합니다.
sed, awk 또는 다른 것으로 이 작업을 수행할 수 있습니까?
답변1
grep -A 10
일치하는 단어가 포함된 줄과 그 뒤의 10개 줄을 인쇄하는 데 사용할 수 있습니다(10을 원하는 숫자로 바꿀 수 있음). 그러나 파일에 줄 수를 표시하지 않았으므로 다음을 사용할 수 있습니다. :
sed -n '/word/,$p' file >> file2
그러면 단어가 포함된 줄과 그 뒤의 모든 줄이 인쇄된 다음 다른 파일에 추가됩니다. 이렇게 하면 파일에 많은 줄(예: 1,000줄 이상)이 포함된 경우 총 줄 수를 고려할 필요가 없습니다.
답변2
grep -A $(< $A wc -l) hotword $A >> $B
답변3
또 다른 옵션은 awk를 사용하는 것입니다.
awk "/word/, 0" infile >outfile
0
이는 "단어"를 포함하는 첫 번째 줄부터 시작하여 끝나지 않는(따라서 ) 줄 범위를 복사합니다 .