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
+4.4k Golang : How to deal with configuration data?
+4.6k Golang : Display advertisement images or strings on random order
+7k Golang : Randomize letters from a string example
+7.2k How to show different content from website server when AdBlock is detected?
+16.5k Convert JSON to CSV in Golang
+5.9k How to let Facebook Login button redirect to a particular URL ?
+4.5k Python : Delay with time.sleep() function example
+9.5k Golang : Select region of interest with mouse click and crop from image
+12.8k Golang : How to pass map to html template and access the map's elements
+18.4k Golang : Convert(cast) bytes.Buffer or bytes.NewBuffer type to io.Reader
+5.3k Golang : Build new URL for named or registered route with Gorilla webtoolkit example
+12.3k Golang : Get dimension(width and height) of image file