sed를 사용하여 세 번째 단어와 마지막에서 두 번째 단어를 제외한 모든 단어를 제거하려고 합니다. 예를 들어 입력이 다음과 같은 경우입니다.
1 liam
2 liam
3 liam
4 liam
5 liam
6 liam
출력은 다음과 같아야 합니다.
1
2
3 liam
4
5 liam
6
답변1
따라서 가능하다면 awk를 사용하여 처리할 수 있습니다. 필드 구분 기호를 바꾸려는 단어로 설정합니다. 정규식 문자가 없다고 가정합니다. 그런 다음 레코드 구분 기호를 빈 정규식으로 설정하고 필드를 반복합니다. 필드 구분 기호를 마지막에서 세 번째 및 세 번째로 다시 바꿉니다.
$ awk -F 'liam' '
{
for (i=1;i<NF-1; i++) {
if (i==3||i==NF-2) {
sub(/$/, FS, $i)
}
}
}
1' RS='^$' OFS= file