我有一个文本文件,其中的行仅包含逗号。我怎样才能删除这个特定的行?考虑以下示例:
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行将要不是符合条件,则打印出其他行。