sed를 사용하여 마지막에서 세 번째 단어와 마지막에서 두 번째 단어를 제외한 모든 단어 항목을 삭제합니다.

sed를 사용하여 마지막에서 세 번째 단어와 마지막에서 두 번째 단어를 제외한 모든 단어 항목을 삭제합니다.

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

관련 정보