If you are a Linux administrator, you may be familiar with tail, head ad grep commands when reading text files, and they are convenient when looking at log files. (If you are not familiar, we are going to summarize it here.) In a Linux shell, if we want to check the first three lines of a log file, we would execute head -n 3, and to read the last two lines of any given file, we would run tail -n 2.
If we want to check the entire contents of a file, we can use cat file.txt. On the other hand, if we're going to search a specific string within a particular file, we can use cat file.txt | grep "string."
The entire process of reading text files in a Linux bash shell is depicted in the image below.
How about reading text files with PowerShell? That is a piece of cake and more intuitive (since it is a single cmdlet, which helps to save the precious memory slots of my brain already stuffed with all those command names!).
First, to get the entire content of any given file, you can use the Get-Content cmdlet.
If you want the first lines (head) or the end of the file (tail), we can execute these cmdlets:
Get-Content <file.txt> -Head 2 Get-Content <file.txt> -Tail 3
If we want to do something similar to the grep command. We will use the Select-String cmdlet.
Get-Content <file.txt> | Select-String “String”
The entire process that we have just described is depicted in the image below.
More Linux articles
- Setting up static IP address for Linux: Easier than you think
- Sending email from Linux terminal: Efficient and powerful solution
- Using the Linux command line for basic file handling
- PsychOS: A retro-styled Linux distro for your old PCs
- Managing a Red Hat Enterprise Linux network: Quick-start guide
More PowerShell Basics articles
- Neat trick: Organizing and formatting messy PowerShell output
- Adding help to your custom PowerShell cmdlets: Step-by-step guide
- Manage Microsoft Teams quickly and easily with PowerShell
- Building custom PowerShell cmdlets the easy way with modules
- Adding custom error messages to your PowerShell scripts
More Quick Tips articles
- Using location in a consistent way in your ARM template parameters
- Using environment as variables in your Azure DevOps pipelines
- Removing Log Analytics with the soft-delete option
- Using conditions in ARM templates when deploying infrastructure-as-code
- Monitor your Azure VM from your mobile device by scanning a QR code