Golang : Display a text file line by line with line number example
Problem:
Instead of using cat
or more
commands to display a text file line by line. You want to display the file content line by line with a number for each line in a terminal. You also want to know how many total lines are there in the text file. How to do that?
Solution:
Use this simple Golang program to display the text file content with line number on the right side.
countdisplaylines.go
package main
import (
"fmt"
"io/ioutil"
"os"
"strings"
)
func main() {
if len(os.Args) <= 1 {
fmt.Printf("USAGE : %s <target_filename> \n", os.Args[0])
os.Exit(0)
}
fileName := os.Args[1]
fileBytes, err := ioutil.ReadFile(fileName)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
lines := strings.Split(string(fileBytes), "\n")
// remove the last item from the lines slice
// which is empty
lines = lines[:len(lines)-1]
// len() function will count the total number of lines
fmt.Println(fileName, "has a total of", len(lines), "lines")
for i, line := range lines {
// i = i + 1 // uncomment to start from 1 instead of 0
fmt.Println(i, line)
}
}
Sample output:
$ ./countdisplaylines 123.txt
123.txt has a total of 3 lines
0 one
1 two
2 three
content of the
123.txt
file:one
two
three
See also : Golang : Write multiple lines or divide string into multiple lines
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+22.2k Fix "Failed to start php5-fpm.service: Unit php5-fpm.service is masked."
+4.9k Facebook : How to place save to Facebook button on your website
+12.6k Golang : Flush and close file created by os.Create and bufio.NewWriter example
+11.9k Golang : Secure file deletion with wipe example
+5.5k Golang : Return multiple values from function
+10.1k Golang : Read file and convert content to string
+8k Golang : Get today's weekday name and calculate target day distance example
+5.7k PHP : Fix Call to undefined function curl_init() error
+8.1k Golang : Gomobile init produce "iphoneos" cannot be located error
+7k Mac/Linux/Windows : Get CPU information from command line
+11.1k Nginx : TLS 1.2 support
+6.5k WARNING: UNPROTECTED PRIVATE KEY FILE! error message