How to Print Longest Line(s) in a File in Linux?

Finding the longest line(s) in a file is a common task in Linux system administration and text processing. Whether you're analyzing log files, configuration files, or data files, several command-line tools can help you identify lines with maximum character length efficiently.

Method 1: Using wc Command

The wc (word count) command with the -L option finds the length of the longest line in a file.

$ wc -L filename

For example, with a file named sample.txt containing:

This is first line.
This is second line.
This is the longest line in the entire file.
This is fourth line.

Running the command:

$ wc -L sample.txt
43 sample.txt

This shows the longest line is 43 characters long.

Method 2: Using awk Command

The awk command can find and display the actual longest line content:

$ awk '{ if (length > L) { L=length; X=$0 } } END { print X }' filename

Using our sample file:

$ awk '{ if (length > L) { L=length; X=$0 } } END { print X }' sample.txt
This is the longest line in the entire file.

To get both length and content:

$ awk '{ if (length > L) { L=length; X=$0 } } END { print L, X }' sample.txt
43 This is the longest line in the entire file.

Method 3: Using grep Command

The grep command can find lines exceeding a specific length using regular expressions:

$ grep -n '.{40}' filename

This displays all lines with 40 or more characters, including line numbers:

$ grep -n '.{40}' sample.txt
3:This is the longest line in the entire file.

Method 4: Using Perl Command

Perl provides a concise way to find the longest line with its length:

$ perl -ne 'print length, " $_"' filename | sort -n | tail -1

Example usage:

$ perl -ne 'print length, " $_"' sample.txt | sort -n | tail -1
43 This is the longest line in the entire file.

Method 5: Using Python One-liner

Python can efficiently process files to find the longest line:

$ python3 -c "with open('filename') as f: lines=f.readlines(); longest=max(lines, key=len); print(f'{len(longest.rstrip())}: {longest.rstrip()}')"

For just the length:

$ python3 -c "with open('sample.txt') as f: print(max(len(line.rstrip()) for line in f))"
43

Method 6: Combined Approach for Multiple Longest Lines

To find all lines that share the maximum length:

$ awk 'length > max_length { max_length = length; delete longest; longest[NR] = $0 } 
       length == max_length { longest[NR] = $0 } 
       END { for (i in longest) print longest[i] }' filename

Comparison of Methods

Method Output Performance Best For
wc -L Length only Fastest Quick length check
awk Content + Length Fast Detailed analysis
grep Lines above threshold Medium Filtering by length
Perl Length + Content Medium Complex processing
Python Customizable Slower for small files Complex logic

Practical Use Cases

  • Log Analysis Identifying unusually long log entries that might indicate errors or verbose debug information.

  • Configuration Files Finding lines that exceed recommended length limits for readability.

  • Data Processing Validating data formats where line length constraints apply.

  • Code Review Identifying lines that violate coding standards for maximum line length.

Conclusion

Multiple Linux tools offer effective ways to find the longest lines in files. Use wc -L for quick length checks, awk for detailed content analysis, and grep for filtering by length thresholds. Choose the method that best fits your specific requirements and file processing needs.

Updated on: 2026-03-17T09:01:38+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements