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
+10.8k Golang : Removes punctuation or defined delimiter from the user's input
+14.4k How to automatically restart your crashed Golang server
+5.1k Golang : Customize scanner.Scanner to treat dash as part of identifier
+15.1k JavaScript/JQuery : Detect or intercept enter key pressed example
+9.4k Golang : Accessing content anonymously with Tor
+31.3k Golang : bufio.NewReader.ReadLine to read file line by line
+27.9k Golang : Move file to another directory
+31.4k Golang : Example for ECDSA(Elliptic Curve Digital Signature Algorithm) package functions
+7.8k Setting $GOPATH environment variable for Unix/Linux and Windows
+33.9k Golang : Call a function after some delay(time.Sleep and Tick)
+12.2k Golang : How to display image file or expose CSS, JS files from localhost?