Get Palabras
Una funcion para contar las palabars de un texto.
A raiz de una conversacion se me ocurrio crear esta funcion que puede ayudar a contar palabras en un texto deterinado.
1function Global:Get-Palabras {#Espublico
2<#
3.SYNOPSIS
4 Cuenta palabras dentro de un fichero ejemplo de funcion privada y funcion global
5.DESCRIPTION
6 Se obtendra el la cantidad de palabras que contiene un texto
7.PARAMETER Fichero
8 Rutal del archivo a analizar
9.PARAMETER Repetido
10 Por defecto no se contaran palabras repetidas
11 Si desea obtener el total de palabras asigne $false
12.INPUTS
13 Archivo en texto plano
14.OUTPUTS
15 Integer numero de palabras
16.NOTES
17 Version: 1.1
18 Author: Felipoyo
19 Creation Date: 13/05/2021
20 Purpose/Change: Se agrega funcionalidad de palabras repetidas.
21
22.EXAMPLE
23 Get-Palabras -Fichero "C:\Users\XXXXX\Desktop\palabras.txt"
24 Get-Palabras -Fichero "C:\Users\XXXXX\Desktop\demowords.txt" -Repetido:$false
25#>
26 Param(
27 # Parametro: Fichero : Obligatorio, String
28 [Parameter(Mandatory=$true)]
29 [ValidateScript({Test-Path $_ -PathType 'Leaf'})]
30 [string]
31 $Fichero,
32 #Parametro: Repetido : Opcional, Boolean = $true
33 [bool]
34 $Repetido = $true #valur por default
35 )
36 function Private:Find-Contenido{#Es privada
37 Param(
38 [Parameter(Mandatory=$true)]
39 [ValidateScript({Test-Path $_ -PathType 'Leaf'})]
40 [string]
41 $Ruta
42
43 )
44 $contenido = Get-Content -LiteralPath $Ruta
45 $contenido| foreach{
46 $linea = $_
47 $palabrasdelinea = $linea.replace(".;,`r`n`0","").Split(" ").Split("`t")
48 $palabras += $palabrasdelinea
49 Return $palabras
50}
51}
52 $palabras = @()
53 Write-debug "Contando palabras del archivo $($Fichero)"
54
55 $palabras = Find-Contenido -Ruta $Fichero
56
57 if($Repetido -eq $false){
58
59 $resultado = $($palabras | Where-Object { $_ -ne "" }).count
60
61 }else{
62 $resultado = $($palabras | Where-Object { $_ -ne "" } | select -Unique).count
63
64 }
65 Return [int]$resultado
66
67}