Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

227
Visualizações
Usar awk para recuperar un conjunto específico de cadenas de un archivo

textFileA consta de:

 mango:oval:yellow:18pcs apple:irregular:red:12pcs orange:round:orange:4pcs

Quería hacer algo como permitir la entrada del usuario, por ejemplo, la búsqueda del usuario "mango". Quiero que el sistema imprima

Ingrese el nombre de la fruta: mango >> esta es una entrada del usuario

Salida de deseo

 Fruit Shape : Oval Fruit Color : Yellow Fruit Quantity : 18pcs

Hasta ahora, esto es lo que hice y solo podía imprimir toda la línea de cadenas, ¿hice algo mal aquí?

 echo -n "Please enter the fruit name :" read fruitName awk '/'$fruitName'/ {print}' textFileA

Salida de corriente

 mango:oval:yellow:18pcs
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Puedes usarlo así:

 read -p "Please enter the fruit name: " fruitName awk -F: -v fruitName="$fruitName" ' $1 == fruitName { print "Fruit Shape :", $2 print "Fruit Color :", $3 print "Fruit Quantity :", $4 }' file

Producción:

 Please enter the fruit name: mango Fruit Shape : oval Fruit Color : yellow Fruit Quantity : 18pcs
over 4 years ago · Santiago Trujillo Relatório

0

Si desea formatear una cadena insertando ciertos valores dentro de ella, puede encontrar útil printf Statement , considere el siguiente ejemplo, deje que el contenido de file.txt sea

 mango:oval:yellow:18pcs apple:irregular:red:12pcs orange:round:orange:4pcs

entonces

 awk 'BEGIN{FS=":"}/mango/{printf "Shape %s\nColor %s\nQuantity %s\n",$2,$3,$4}' file.txt

producción

 Shape oval Color yellow Quantity 18pcs

Explicación: Le informo a GNU AWK que el separador de campo es : (lea 8 potentes variables integradas de Awk: FS, OFS, RS, ORS, NR, NF, NOMBRE DE ARCHIVO, FNR si desea obtener más información) luego, para la línea que contiene mango , printf cadena, %s se reemplazan con valores de columnas: 2nd ( $2 ) 3rd ( $3 ) 4th ( $4 ), \n denota una nueva línea, por lo que este printf genera una cadena multilínea. Tenga en cuenta la nueva línea final, ya que, de forma predeterminada, printf no la incluye al final.

(probado en gawk 4.2.1)

over 4 years ago · Santiago Trujillo Relatório

0

Usando awk

 $ awk -F: 'BEGIN {printf "Please enter fruit name: "; getline fruit < "-"} $1==fruit {print "Fruit Shape: " $2 "\nFruit Color: " $3 "\nFruit Quantity: " $4}' input_file Please enter fruit name: mango Fruit Shape: oval Fruit Color: yellow Fruit Quantity: 18pcs
 $ cat file.awk BEGIN { printf "Please enter fruit name: "; getline fruit < "-" } $1==fruit { print "Fruit Shape: " $2 "\nFruit Color: " $3 "\nFruit Quantity: " $4 }
 $ awk -F: -f file.awk input_file Please enter fruit name: mango Fruit Shape: oval Fruit Color: yellow Fruit Quantity: 18pcs
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda