In this tutorial we will learn about how we can perform different file operation on linux based operating system.
For demo purpose we will use following movies csv file:
List the file contents
Let's look at how we can check the file data in different ways:
# view all file contents cat movies.csv # view a file with line numbers cat -n movies.csv # omit the repeated empty output lines cat -s movies.csv # read only 10 lines from the beginning of the file head movies.csv # read last 10 lines of the file tail movies.csv # read n number of lines from beginning or end of the file head -n movies.csv i.e. replace n with a number tail -n movies.csv i.e. replace n with a number # read data from the file # with the line number # scroll down to view more data # it works like pagination less -N movies.csv more -N movies.csv # different approach cat movies.csv | less cat movies.csv | more
Filter the file contents
Now, we know how to display file contents however if we want to filter some words or string or replace etc.. We would use following operations:
# let's only display movie years # we know that our file is comma delimitor # and movie years are stored in second field cat movies.csv | cut -d"," -f2 # let's go more advance and only want to find # movies that ends with 99 cat movies.csv | grep '99\b' cat movies.csv | egrep '99\b' # fine movies that starts with 19 cat movies.csv | grep '\b19' cat movies.csv | egrep '\b19' # Find all movies that contains The word cat movies.csv | grep -w The # Find all movies that has The word # Also print the line number in the beginning cat movies.csv | grep -nw The # Get all movies that contains The word # Print the line numbers also and then filter # Only movies that has King word in them cat movies.csv | grep -nw The | grep -w King
Replace words in file
To replace words from the filtered result following commands can be used:
# Search movies that has Beauty word # Replace Beauty with Phycho word cat movies.csv | grep Beauty | sed 's/Beauty/Phycho/g' # Find all 19's movies # Filter only Dogs movies # Replace Dogs with Cats # Create a new file with the results cat movies.csv | grep '\b19' | grep -w Dogs | sed 's/Dogs/Cats/g' > results.csv
I hope you enjoyed this tutorial please like and share this tutorial.