쉼표만 포함된 줄이 있는 텍스트 파일이 있습니다. 이 특정 행을 어떻게 삭제합니까? 다음 예를 고려하십시오.
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번째 줄만~ 할 것이다아니요조건이 충족되면 다른 줄이 인쇄됩니다.