我有一个文件,其中有些行只有逗号,没有数据。问题是这些行不会有固定数量的逗号。数据可能如下所示 -
99,abc,123,,
bcd,123,th
,,bcd,123,th
,,,,bcd,123,th
,,,
,,,,,
输出应该看起来像
99,abc,123,,
bcd,123,th
,,bcd,123,th
,,,,bcd,123,th
我必须删除只有逗号的行。
答案 0 :(得分:2)
awk
awk -F, '!/^,+$/{print}' file
或:
awk -F, '{p=1}/^,+$/{p=0}p' file
答案 1 :(得分:2)
尝试单个grep如下。(否定那些从逗号开始直到结束它们有逗号的行,在所有命令中使用相同的逻辑)
grep -v '^,*$' Input_file
尝试使用awk解决方案如下。
awk '!/^,*$/' Input_file
尝试使用sed解决方案。
sed -n '/^,*$/d;p' Input_file
答案 2 :(得分:1)
此 grep 将删除所有仅包含逗号(至少一个)的行,并在需要时保留空白行。我相信您的要求只是删除仅包含逗号的行。
grep -v "^,,*$" file
输入
99,abc,123,,
bcd,123,th
,,bcd,123,th
,,,,bcd,123,th
,,,
,,,,,
abc
输出:
99,abc,123,,
bcd,123,th
,,bcd,123,th
,,,,bcd,123,th
abc
如果您想删除空白行,则可以使用:
grep -v "^,*$" file