Mostrar varias columnas CSV que tengan espacio en una línea

Mostrar varias columnas CSV que tengan espacio en una línea

Tengo un archivo CSV con nombre y apellido. Los encabezados son "Nombre de pila" y "Apellido". Puedo hacer que se muestre, pero coloca el nombre y el apellido en líneas separadas.

Pregunta:¿Cómo puedo hacer que el resultado se muestre ambos juntos en una línea en Powershell?

Este PowerShell separa los valores en líneas separadas:

 Import-Csv -Path C:\file1.csv | foreach {echo $_.'First Name’ $_.'Last Name’}

Respuesta1

Utilizando el$( ) Operador de subexpresiónde forma anidada, es posible concatenar múltiples resultados de subexpresiones y devolverlos como un grupo dentro de otra subexpresión, devolviendo el resultado deseado (es decir "$($(mutlivalue1) $(multivalue2))" == "val1 val2").

Potencia Shell

Import-Csv -Path "C:\file1.csv" | %{"$($_."First Name") $($_."Last Name")"};

Recursos de apoyo

  • Operators $( ) @( ) :: &

    $( ) Operador de subexpresión.

    Utilice una subexpresión para devolver información específica propiedadesde un objeto. A diferencia del paréntesis simple, una subexpresión puede contener múltiples ; punto y coma; separado; declaraciones.

    El resultado de cada declaración contribuye al resultado de la subexpresión. Para un único resultado, devolverá un escalar. Para múltiples resultados, devolverá una matriz.

    Las subexpresiones le permiten evaluar y actuar sobre los resultados de una expresión en una sola línea; sin necesidad de una variable intermedia:

Respuesta2

Import-Csv -Path C:\file1.csv | foreach {'{0} {1}' -f $_.'First Name’, $_.'Last Name’ | Write-host}

Respuesta3

Te propongo múltiples métodos:

#method 0 : on one row by you can keep your columns (result are list of objects)
import-csv "C:\temp\yooo.txt" | select "First Name", "Last Name"

#method 1 : create new column in select (result are list of objects)
import-csv "C:\temp\yooo.txt" | select @{Name="Identity";Expression={"{0} {1}" -f $_."First Name", $_."Last Name"}}

#method 2 : create new column in loop (result are list of string)
import-csv "C:\temp\yooo.txt" | %{"{0} {1}" -f $_."First Name", $_."Last Name"}

#method 3 : create new object in loop (result are list of objects)
import-csv "C:\temp\yooo.txt" | %{

[pscustomobject]@{
FirstName=$_."First Name"
LastName=$_."Last Name"
}

}

información relacionada