以下のawk
コマンドは、ここで説明されているように、すべての重複行を削除します。
awk '!seen[$0]++'
テキストに空行が含まれている場合、1行を除くすべての空行が削除されます。
のみを使用して、空ではないすべての重複行を削除しながら、すべての空の行を保持するにはどうすればよいawk
ですか?また、簡単な説明も含めてください。
以下のawk
コマンドは、ここで説明されているように、すべての重複行を削除します。
awk '!seen[$0]++'
テキストに空行が含まれている場合、1行を除くすべての空行が削除されます。
のみを使用して、空ではないすべての重複行を削除しながら、すべての空の行を保持するにはどうすればよいawk
ですか?また、簡単な説明も含めてください。
回答:
awk
@Thorの答えに似た別のソリューションを次に示します。簡潔ではありませんが、より効率的です。
awk '!NF {print;next}; !($0 in a) {a[$0];print}' file
これにより、a[$0]
存在するかどうかのみをチェックします。そうでない場合は、初期化してから印刷します。この場合、参照、a[$0]
存在する場合の割り当てはありません。