파일에서 특정 줄을 삭제하는 방법은 무엇입니까?

파일에서 특정 줄을 삭제하는 방법은 무엇입니까?

쉼표만 포함된 줄이 있는 텍스트 파일이 있습니다. 이 특정 행을 어떻게 삭제합니까? 다음 예를 고려하십시오.

CREATE TABLE ENTERPRISE.TSDAILYACCTSUMMARY (
    TSDAILYACCTID FOR COLUMN TSDAYID    INTEGER INTEGER NOT NULL ,
    ,
    TIMESHEETDATE FOR COLUMN TSDATE     DATE DEFAULT NULL ,

세 번째 행을 삭제하는 방법은 무엇입니까?

답변1

노력하다

 awk '$1 == "," && NF==1 { next ; } { print ; } ' file > other_file

또는

 grep  -v '^[ ]*,[ ]*$' file > other_file

또는

 sed -i -e '/^[ \t]*,[ \t]*$/d' original_file

답변2

perl -i -ne 'print if ! /^\s*,\s*$/' file

답변3

더 깨끗한 awk솔루션은 다음과 같습니다.

awk '!(NF==1&&$1==",")' /path/to/file
  • awk조건자/필터/조건이 이면 기본적으로 전체 줄이 인쇄됩니다 true.
  • 이 경우 조건은아니요단일 필드( NF==1)존재하다 ",".
  • 그러므로 3번째 줄만~ 할 것이다아니요조건이 충족되면 다른 줄이 인쇄됩니다.

관련 정보