이 파일이 있고 크기가 21이 아닌 모든 줄을 인쇄하고 싶습니다.
PASY$ type a.a
000008050110010201NNN
000008060810010201NNN
21212000008070110010201NNN
000008080310010201NNN
000008090510010201NNN
000008050110010201NNN
000008060310010201NNN
00008070110010201NNN
답변1
$ sed '/^.\{21\}$/d;q' input-file
sed
d
시작과 끝 사이에 정확히 21자가 있는 첫 번째 줄을 삭제합니다(따라서 인쇄하지 않습니다)("삭제"와 같은 끔찍한 단어를 사용함에도 불구하고 실제 파일은 수정되지 않습니다) . 그러한 행을 찾으면 즉시 다른 행 처리를 중지합니다.
답변2
sed -n '/^.....................$/!p' < input-file
^
줄 시작( )과 줄 끝( ) $
사이에 21자가 없으면 인쇄합니다.
보다 긍정적으로, d
엘레테 라인은예21자 길이(기본값은 다른 줄을 인쇄함):
sed '/^.....................$/d' < input-file