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
+17.5k Golang : Iterate linked list example
+20.4k Golang : Saving private and public key to files
+11.4k Get form post value in Go
+10.6k Golang : Natural string sorting example
+19k Golang : Delete item from slice based on index/key position
+25k Golang : Convert long hexadecimal with strconv.ParseUint example
+12.3k Golang : Arithmetic operation with numerical slices or arrays example
+8.5k Android Studio : Image button and button example
+14.3k Golang : Missing Bazaar command
+16.6k Golang : How to generate QR codes?
+5.9k Golang : Convert Chinese UTF8 characters to Pin Yin