파일에서 특정 길이의 줄을 유지하는 명령

파일에서 특정 길이의 줄을 유지하는 명령

.txt 파일에 639개의 문자 라인을 유지하고 싶습니다. 이를 수행하는 명령은 무엇입니까?

답변1

당신은 그것을 사용할 수 있습니다 grep:

grep -E '^.{639}$' your.txt

^$줄의 시작과 끝을 일치시킵니다 . .{639}모든 문자와 정확히 639번 일치합니다.

Stéphane이 언급했듯이 이는 다음과 같이 (한 문자로) 단축될 수 있습니다.

grep -Ex '.{639}' your.txt

그리고 -x말했다:Select only those matches that exactly match the whole line

답변2

awk를 사용하세요:

awk 'length == 639'

또는 약간 이해하기 쉽습니다.

awk 'length() == 639' 

\감사합니다{@fedorqui}

답변3

Ex 모드에서 Vim을 사용할 수 있습니다:

ex -sc 'v/\v^.{639}$/d' -cx file.txt
  1. \v마법을 켜세요

  2. ^.{639}$정확히 639자를 포함하는 줄 찾기

  3. v반전 선택

  4. d삭제

  5. x저장하고 닫습니다

답변4

데이터가 무엇인지, 단어를 중간에 분리하는 것이 허용되는지 여부에 대해 언급하지 않았습니다. 따라서 여기에 서면 텍스트에 더 적합할 수 있는 대안이 있습니다.

export MANWIDTH=639
cat file.txt | man -l -

이는 표시를 위해 기본 호출기를 사용하거나 출력을 다른 것으로 파이프합니다.

관련 정보