txt에서 특정 줄 수 뒤에 빈 줄을 추가하는 방법

txt에서 특정 줄 수 뒤에 빈 줄을 추가하는 방법

이것은 텍스트 파일입니다 Drives.txt.

    Slot Number              : 0   
    Drive's position         : DiskGroup 0  
    Media Error Count        : 0   
    Other Error Count        : 0   
    Predictive Failure Count : 0   
    Raw Size                 : 745.211 GB [0x5d26ceb0 Sectors]
    Firmware state           : Online, Spun Up 
    Inquiry Data             : WDC WUSTR6480ASS200 K95DV6X3NG2A 
    Foreign State            : None   
    Media Type               : Solid State Device 
    Drive Temperature        : 27C (80.60 F) 
    Drive S.M.A.R.T alert    : No
    Slot Number              : 1   
    Drive's position         : DiskGroup 0  
    Media Error Count        : 0   
    Other Error Count        : 0   
    Predictive Failure Count : 0   
    Raw Size                 : 745.211 GB [0x5d26ceb0 Sectors]
    Firmware state           : Online, Spun Up 
    Inquiry Data             : WDC WUSTR6480ASS200 K95DV6X3NG2A 
    Foreign State            : None   
    Media Type               : Solid State Device 
    Drive Temperature        : 27C (80.60 F) 
    Drive S.M.A.R.T alert    : No
    Slot Number              : 2   
    Drive's position         : DiskGroup 0  
    Media Error Count        : 0   
    Other Error Count        : 0   
    Predictive Failure Count : 0   
    Raw Size                 : 745.211 GB [0x5d26ceb0 Sectors]
    Firmware state           : Online, Spun Up 
    Inquiry Data             : WDC WUSTR6480ASS200 K95DV6X3NG2A 
    Foreign State            : None   
    Media Type               : Solid State Device 
    Drive Temperature        : 27C (80.60 F) 
    Drive S.M.A.R.T alert    : No

진단된 각 드라이브 사이에 공백이 있도록 12번째 줄(예: 12, 24, 36번 줄 등)마다 빈 줄을 추가하고 싶습니다. 어떻게 해야 합니까? bash 스크립트로 구현하고 싶습니다.

출력은 다음과 같아야 합니다.

Slot Number              : 0   
Drive's position         : DiskGroup 0  
Media Error Count        : 0   
Other Error Count        : 0   
Predictive Failure Count : 0   
Raw Size                 : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state           : Online, Spun Up 
Inquiry Data             : WDC WUSTR6480ASS200 K95DV6X3NG2A 
Foreign State            : None   
Media Type               : Solid State Device 
Drive Temperature        : 27C (80.60 F) 
Drive S.M.A.R.T alert    : No

Slot Number              : 1   
Drive's position         : DiskGroup 0  
Media Error Count        : 0   
Other Error Count        : 0   
Predictive Failure Count : 0   
Raw Size                 : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state           : Online, Spun Up 
Inquiry Data             : WDC WUSTR6480ASS200 K95DV6X3NG2A 
Foreign State            : None   
Media Type               : Solid State Device 
Drive Temperature        : 27C (80.60 F) 
Drive S.M.A.R.T alert    : No

Slot Number              : 2   
Drive's position         : DiskGroup 0  
Media Error Count        : 0   
Other Error Count        : 0   
Predictive Failure Count : 0   
Raw Size                 : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state           : Online, Spun Up 
Inquiry Data             : WDC WUSTR6480ASS200 K95DV6X3NG2A 
Foreign State            : None   
Media Type               : Solid State Device 
Drive Temperature        : 27C (80.60 F) 
Drive S.M.A.R.T alert    : No

답변1

자연스러운 핏이에요

awk '{print} NR % 12 == 0 {print ""}' Drives.txt

답변2

유형

sed '12~12a\
' Drives.txt

>(예. 이것은 두 개의 별도 라인입니다. 쉘은 첫 번째 라인을 입력한 후 프롬프트를 표시합니다.) 또는

sed -e '12~12a\' -e '' Drives.txt

주소 지정 모드는 GNU sed의 확장으로, "다음 명령을 온라인으로 실행"을 의미합니다. M~NM 그 이후의 모든 N줄". sed의 명령은  a"줄 추가"를 의미합니다. 일반적으로 삽입할 텍스트를 제공합니다. 빈 줄을 원하기 때문에 를 사용했습니다  ''.

Steeldriver가 지적했듯이 0~120번 줄이 없으므로 실제로는 12번 줄에서 시작합니다.

답변3

어떤 구현에서든 sed(빈) 예약된 공간을 추가하여 줄 뒤에 개행 문자를 추가할 수 있습니다.alert :G

sed '/alert *:/G' Drives.txt

파일 끝의 빈 줄이 마음에 들지 않으면 마지막 줄(address $) 의 경우 P개행 앞 부분을 인쇄하고 d해당 줄을 삭제하세요.

sed '/alert *:/G;$P;$d' Drives.txt

답변4

awk 'NR%12 == 0 {$0=$0"\n"}1' file.txt

산출

  Slot Number              : 0   
    Drive's position         : DiskGroup 0  
    Media Error Count        : 0   
    Other Error Count        : 0   
    Predictive Failure Count : 0   
    Raw Size                 : 745.211 GB [0x5d26ceb0 Sectors]
    Firmware state           : Online, Spun Up 
    Inquiry Data             : WDC WUSTR6480ASS200 K95DV6X3NG2A 
    Foreign State            : None   
    Media Type               : Solid State Device 
    Drive Temperature        : 27C (80.60 F) 
    Drive S.M.A.R.T alert    : No

    Slot Number              : 1   
    Drive's position         : DiskGroup 0  
    Media Error Count        : 0   
    Other Error Count        : 0   
    Predictive Failure Count : 0   
    Raw Size                 : 745.211 GB [0x5d26ceb0 Sectors]
    Firmware state           : Online, Spun Up 
    Inquiry Data             : WDC WUSTR6480ASS200 K95DV6X3NG2A 
    Foreign State            : None   
    Media Type               : Solid State Device 
    Drive Temperature        : 27C (80.60 F) 
    Drive S.M.A.R.T alert    : No

    Slot Number              : 2   
    Drive's position         : DiskGroup 0  
    Media Error Count        : 0   
    Other Error Count        : 0   
    Predictive Failure Count : 0   
    Raw Size                 : 745.211 GB [0x5d26ceb0 Sectors]
    Firmware state           : Online, Spun Up 
    Inquiry Data             : WDC WUSTR6480ASS200 K95DV6X3NG2A 
    Foreign State            : None   
    Media Type               : Solid State Device 
    Drive Temperature        : 27C (80.60 F) 
    Drive S.M.A.R.T alert    : No

관련 정보