问题
I have a test file like below. (but the actual file has 1000+ lines and many columns)
apple,2
mango,5
coconut,10
I want to print this file as below.
I have apple and the count is 2
I have mango and the count is 5
I have coconut and the count is 10
I tried while read line
with awk -F ',' '{print $1}'
, but im not getting the actual output.
Can someone help me on this?
回答1:
You can use awk
like this:
awk -F, '{print "I have", $1, "and the count is", $2}' file
I have apple and the count is 2
I have mango and the count is 5
I have coconut and the count is 10
Though awk
is recommended but if you are looking for a bash loop then use:
while IFS=, read -r f c; do
echo "I have $f and the count is $c"
done < file
回答2:
Here is one in sed. Replace the beginning of each line and the comma with related strings:
$ sed 's/^/I have /;s/,/ and the count is /' file
I have apple and the count is 2
I have mango and the count is 5
I have coconut and the count is 10
回答3:
If it's a small file, you can use read
to split the line.
while IFS=, read fruit count; do
echo "I have $fruit and the count is $count"
done < file.txt
For larger files, it is inefficient to iterate using bash
, and something like awk
to read the entire file would be more appropriate.
来源:https://stackoverflow.com/questions/51741463/bash-while-read-line-from-file-print-first-and-second-column