重複行を削除し、タブやスペースを無視する方法

重複行を削除し、タブやスペースを無視する方法

重複した行を削除したいので、/etc/fstab次のようにしました。

 awk '!NF || !seen[$0]++'   /etc/fstab > /etc/fstab.update

UUID=3de0d101-fba7-4d89-b038-58fe07295d96 /grid/sdb ext4 defaults,noatime 0 0
UUID=683ed0b3-51fe-4dc4-975e-d56c0bbaf0bc /grid/sdc ext4 defaults,noatime 0 0
UUID=1cf79946-0ba6-4cd8-baca-80c0a2693de1 /grid/sdd ext4 defaults,noatime 0 0
UUID=fa9cc6e8-4df8-4330-9144-ede46b94c49e /grid/sde ext4 defaults,noatime 0 0
UUID=3de0d101-fba7-4d89-b038-58fe07295d96   /grid/sdb                      ext4 defaults,noatime 0 0
UUID=683ed0b3-51fe-4dc4-975e-d56c0bbaf0bc   /grid/sdc                      ext4 defaults,noatime 0 0

しかし、最後の2行は最初の2行と同じですが、最後の2行にスペースがあることがわかります。

スペースを無視して重複した行を削除できますか?

ベストアンサー1

強制記録の再構成$1=$1!これにより、隣接するすべてのスペースが1つのスペースに圧縮されます。

awk '{$1=$1};!seen[$0]++'

おすすめ記事