How to Count the Number of Characters, Words and Lines in PowerShell
-
Use
Measure-ObjectCmdlet to Count the Number of Characters in PowerShell -
Use
Measure-ObjectCmdlet to Count the Number of Words in PowerShell -
Use
Measure-ObjectCmdlet to Count the Number of Lines in PowerShell -
Use
Measure-ObjectCmdlet to Count Text of All Files of the Directory in PowerShell -
Use
measureto Count the Number of Characters, Words and Lines in PowerShell
While working with text files, you may need to know the number of characters, words, and lines in a file. You can find many tools and websites to count characters, words, and lines.
But if you want to use the command line, PowerShell is a great tool. The Measure-Object cmdlet calculates the property values of objects in PowerShell.
It displays the numeric values for characters, words, and lines in string objects, such as text files. This tutorial teaches how to count the number of characters, words and lines in a text file using PowerShell.
Use Measure-Object Cmdlet to Count the Number of Characters in PowerShell
The Measure-Object cmdlet does calculations depending on the parameters used in the command. For instance, it measures the property values, such as characters, words, and lines of string objects, only if the parameters are specified on the command.
The -Character parameter tells Measure-Object to calculate the number of characters in the input objects.
The following command counts the number of characters in a test.txt file in the directory C:\New.
Get-Content C:\New\test.txt | Measure-Object -Character
Output:
Lines Words Characters Property
----- ----- ---------- --------
1065
In the above example, the Get-Content cmdlet gets the content of a test.txt file. It is then piped to Measure-Object as an input object to calculate its number of characters.
By default, the white spaces are counted as characters. You can exclude the white spaces in a character count by using the -IgnoreWhiteSpace parameter.
Get-Content C:\New\test.txt | Measure-Object -Character -IgnoreWhiteSpace
Output:
Lines Words Characters Property
----- ----- ---------- --------
894
The other values are not displayed because their parameters are not specified.
Use Measure-Object Cmdlet to Count the Number of Words in PowerShell
The -Word parameter instructs Measure-Object to calculate the number of words in the input objects.
The example below counts the number of words in a test.txt file in the directory C:\New.
Get-Content C:\New\test.txt | Measure-Object -Word
Output:
Lines Words Characters Property
----- ----- ---------- --------
173
Use Measure-Object Cmdlet to Count the Number of Lines in PowerShell
The -Line parameter instructs Measure-Object to calculate the number of lines in the input objects.
The example below counts the number of lines in a test.txt file in the directory C:\New.
Get-Content C:\New\test.txt | Measure-Object -Line
Output:
Lines Words Characters Property
----- ----- ---------- --------
7
You can use all parameters in the single command to count the total number of characters, words and lines in a file.
Get-Content C:\New\test.txt | Measure-Object -Character -Word -Line
Output:
Lines Words Characters Property
----- ----- ---------- --------
7 173 1065
Use Measure-Object Cmdlet to Count Text of All Files of the Directory in PowerShell
You can also count the number of characters, words and lines of all files present inside the directory. The following command measures the characters, words, and lines of all .txt files in the C:\New directory.
Get-ChildItem C:\New\*.txt | Get-Content | Measure-Object -Character -Word -Line
The Get-ChildItem gets all .txt files in the C:\New directory in the above command. Its output is piped to the Get-Content to get the content of all files, which is then piped to Measure-Object to calculate the number of characters, words, and lines.
Output:
Lines Words Characters Property
----- ----- ---------- --------
303 2379 36046
If you want to count the number of files present in sub-directories, too, you have to use the -Recurse parameter with Get-ChildItem.
The following example displays the number of characters, words, and lines of all .txt files in the directory C:\New, including its sub-directories.
Get-ChildItem C:\New\*.txt -Recurse | Get-Content | Measure-Object -Character -Word -Line
Output:
Lines Words Characters Property
----- ----- ---------- --------
3488 21646 191389
Use measure to Count the Number of Characters, Words and Lines in PowerShell
You can also measure text in text files using the measure command, the built-in alias for Measure-Object.
This command will print the number of characters, words and lines of a process.txt file in the C:\New directory.
Get-Content C:\New\process.txt | measure -Character -Word -Line
Output:
Lines Words Characters Property
----- ----- ---------- --------
293 2189 34867
In this article, you have learned to use Measure-Object to count the number of characters, words, and lines of text files in PowerShell.
