textFileA consists of:
mango:oval:yellow:18pcs
apple:irregular:red:12pcs
orange:round:orange:4pcs
I wanted to do something like allowing user input for example user search "mango" I want the system to print out
Please enter the fruit name : mango >> this is user input
Desire Output
Fruit Shape : Oval
Fruit Color : Yellow
Fruit Quantity : 18pcs
So far this is what i done and it could only print out the entire line of strings, did i do something wrong here?
echo -n "Please enter the fruit name :"
read fruitName
awk '/'$fruitName'/ {print}' textFileA
Current Output
mango:oval:yellow:18pcs
CodePudding user response:
You may use it like this:
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
Output:
Please enter the fruit name: mango
Fruit Shape : oval
Fruit Color : yellow
Fruit Quantity : 18pcs
CodePudding user response:
Using 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