
나는 다음과 같은 것을 가지고 있습니다
dsadjakldjska
safdsfdsfsf
fdsfsf**STGN**fdsfsd
fdsfkjldsf
fdsff
fdsfs**IRV**fdsfs
난 갖길 원해
dsadjakldjska
safdsfdsfsf
fdsfkjldsf
fdsff
fdsfsf**STGN**fdsfsd
fdsfs**IRV**fdsfs
그러나 줄 간격(예: 파일 끝까지 줄 40000)에만 해당됩니다(STGN을 포함하는 줄을 다음 IRV 바로 위로 이동).
이 작업을 어떻게 수행할 수 있는지 아십니까? 아니면 sed보다 더 나은 대안이 있습니까?
답변1
awk 'NR < 40000 {print; next}
/\*\*STGN\*\*/ {line = $0; next}
/\*\*IRV\*\*/ && line {print line; line=""}
{print}'
그리고 sed
:
sed -e '40000,$!b' -e '/\*\*STGN\*\*/{h;d;}' -e '/\*\*IRV\*\*/{x;/./p;s/.*//;x;}'
(그들은 STGN이 발생한다고 가정합니다.앞으로IRV).