You could do it like this with awk:
unique.awk
FNR == NR {
for(i=1; i<=NF; i++)
if(++w[$i] > 1)
not_unique[$i] = 1
next
}
{
for(i=1; i<=NF; i++)
if(not_unique[$i])
next
}
1
Run it like this:
awk -f unique.awk infile infile
Output:
F G
As a one-liner:
awk 'FNR == NR { for(i=1; i<=NF; i++) if(++w[$i] > 1) not_unique[$i] = 1; next } { for(i=1; i<=NF; i++) if(not_unique[$i]) next } 1' infile infile
Explanation
The file needs to be parsed twice, first to find all non-unique words, then to print those lines which contain only unique words. This is reflected in the program structure, the first block creates a hash containing words that are not unique, the second checks each line and skips it if it has non-unique words. The trailing 1 at the end is only reached when unique lines occur and it invokes awk's default action ({ print $0 }).