search
HomeSystem TutorialLINUXLinux uniq command example

Linux uniq command example

Jul 18, 2024 pm 04:17 PM
linuxlinux tutorialRed Hatlinux systemlinux commandlinux certificationred hat linuxlinux video

Note that uniq will not remove duplicate rows unless they are adjacent. Therefore, you may need to sort them first, or combine the sort command with uniq to get the results. Let me show you some examples.

First, let’s create a file with some repeating lines:

vi ostechnix.txt
welcome to ostechnix
welcome to ostechnix
Linus is the creator of Linux.
Linux is secure by default
Linus is the creator of Linux.
Top 500 super computers are powered by Linux

As you can see in the file above, we have some duplicate lines (the first and second rows, the third and fifth rows are duplicates).

1. Use uniq command to delete consecutive duplicate lines in the file

If you use uniq command without any arguments, it will remove all consecutive duplicate lines and display only unique lines.

uniq ostechnix.txt

Sample output:

Linux之uniq 命令示例

As you can see, the uniq command removes all consecutive duplicate lines in the given file. You may also notice that the output above still has the second and fourth lines repeated. This is because the uniq command will only delete duplicate rows if they are adjacent. Of course, we can also delete non-consecutive duplicate rows. See the second example below.

2. Delete all duplicate lines
sort ostechnix.txt | uniq

Sample output:

Linux之uniq 命令示例

Did you see it? There are no duplicate rows. In other words, the above command will display lines that appear only once in ostechnix.txt. We use the sort command in conjunction with the uniq command because, like I mentioned, uniq will not remove duplicate lines unless they are adjacent.

3. Only display the only line in the file

To display only the only line in the file, you can do this:

sort ostechnix.txt | uniq -u

Sample output:

Linux is secure by default
Top 500 super computers are powered by Linux

As you can see, only two lines are unique in the given file.

4. Only display duplicate lines

Similarly, we can also display repeated lines in the file, like this:

sort ostechnix.txt | uniq -d

Sample output:

Linus is the creator of Linux.
welcome to ostechnix

These two lines are duplicate lines in the ostechnix.txt file. Note that -d (lowercase d) will print only duplicate lines, one per group. To print all duplicate lines, use -D (capital D) like this:

sort ostechnix.txt | uniq -D

See the difference between the two options in the screenshot below:

Linux之uniq 命令示例

5. Display the number of occurrences of each line in the file

For some reason, you might want to check the number of times each line is repeated in a given file. To do this, use the -c option as follows:

sort ostechnix.txt | uniq -c

Sample output:

Linus is the creator of Linux.
 Linux is secure by default
 Top 500 super computers are powered by Linux
 welcome to ostechnix

We can also sort by the number of occurrences of each row and then display it, as shown below:

sort ostechnix.txt | uniq -c | sort -nr

Sample output:

welcome to ostechnix
 Linus is the creator of Linux.
 Top 500 super computers are powered by Linux
 Linux is secure by default
6. Limit comparison to N characters

We can use the -w option to limit the comparison to a specific number of characters in the file. For example, let's compare the first four characters in the file and display the duplicate lines like this:

uniq -d -w 4 ostechnix.txt
7. Ignore the N characters specified by comparison

Like limiting the comparison to the first N characters of the line in the file, we can also use the -s option to ignore the comparison of the first N characters.

The following command will ignore the first four characters of each line in the file for comparison:

uniq -d -s 4 ostechnix.txt

To ignore comparing the first N fields (LCTT annotation: the first few columns) instead of characters, use the -f option in the above command.

For more details, please refer to the help section:

uniq --help

You can also use the man command to view:

man uniq

That’s it for today! I hope you now have a basic understanding of the uniq command and its purpose. If you found our guide useful, please share it on your social networks and continue to support us. More goodies are coming, so stay tuned!

Cheers!

The above is the detailed content of Linux uniq command example. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Why is Windows commonly used for desktop computing and gaming?Why is Windows commonly used for desktop computing and gaming?Apr 27, 2025 am 12:01 AM

Windowsispreferredfordesktopcomputingandgamingdueto:1)itsvastsoftwareandgamelibrary,2)user-friendlyandcustomizableinterface,3)extensivehardwarecompatibility,and4)performanceoptimizationcapabilities,despitesomeresource-heavyandupdate-relatedissues.

The Future of Linux Software: Will Flatpak and Snap Replace Native Desktop Apps?The Future of Linux Software: Will Flatpak and Snap Replace Native Desktop Apps?Apr 25, 2025 am 09:10 AM

For years, Linux software distribution relied on native formats like DEB and RPM, deeply ingrained in each distribution's ecosystem. However, Flatpak and Snap have emerged, promising a universal approach to application packaging. This article exami

What are the differences in how Linux and Windows handle device drivers?What are the differences in how Linux and Windows handle device drivers?Apr 25, 2025 am 12:13 AM

The differences between Linux and Windows in handling device drivers are mainly reflected in the flexibility of driver management and the development environment. 1. Linux adopts a modular design, and the driver can be loaded and uninstalled dynamically. Developers need to have an in-depth understanding of the kernel mechanism. 2. Windows relies on the Microsoft ecosystem, and the driver needs to be developed through WDK and signed and certified. The development is relatively complex but ensures the stability and security of the system.

Compare and contrast the security models of Linux and Windows.Compare and contrast the security models of Linux and Windows.Apr 24, 2025 am 12:03 AM

The security models of Linux and Windows each have their own advantages. Linux provides flexibility and customizability, enabling security through user permissions, file system permissions, and SELinux/AppArmor. Windows focuses on user-friendliness and relies on WindowsDefender, UAC, firewall and BitLocker to ensure security.

How does hardware compatibility differ between Linux and Windows?How does hardware compatibility differ between Linux and Windows?Apr 23, 2025 am 12:15 AM

Linux and Windows differ in hardware compatibility: Windows has extensive driver support, and Linux depends on the community and vendors. To solve Linux compatibility problems, you can manually compile drivers, such as cloning RTL8188EU driver repository, compiling and installing; Windows users need to manage drivers to optimize performance.

What are the differences in virtualization support between Linux and Windows?What are the differences in virtualization support between Linux and Windows?Apr 22, 2025 pm 06:09 PM

The main differences between Linux and Windows in virtualization support are: 1) Linux provides KVM and Xen, with outstanding performance and flexibility, suitable for high customization environments; 2) Windows supports virtualization through Hyper-V, with a friendly interface, and is closely integrated with the Microsoft ecosystem, suitable for enterprises that rely on Microsoft software.

What are the main tasks of a Linux system administrator?What are the main tasks of a Linux system administrator?Apr 19, 2025 am 12:23 AM

The main tasks of Linux system administrators include system monitoring and performance tuning, user management, software package management, security management and backup, troubleshooting and resolution, performance optimization and best practices. 1. Use top, htop and other tools to monitor system performance and tune it. 2. Manage user accounts and permissions through useradd commands and other commands. 3. Use apt and yum to manage software packages to ensure system updates and security. 4. Configure a firewall, monitor logs, and perform data backup to ensure system security. 5. Troubleshoot and resolve through log analysis and tool use. 6. Optimize kernel parameters and application configuration, and follow best practices to improve system performance and stability.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),