How to add text at the end of each line in unix
awk, ksh, shell, unix
Solution
There are many ways:
`sed`: replace `$` (end of line) with the given text.
$ sed 's/$/ | COUNTRY/' file
india | COUNTRY
sudan | COUNTRY
japan | COUNTRY
france | COUNTRY
`awk`: print the line plus the given text.
$ awk '{print $0, "| COUNTRY"}' file
india | COUNTRY
sudan | COUNTRY
japan | COUNTRY
france | COUNTRY
Finally, in pure `bash`: read line by line and print it together with the given text. Note this is discouraged as explained in Why is using a shell loop to process text considered bad practice?
$ while IFS= read -r line; do echo "$line | COUNTRY"; done < file
india | COUNTRY
sudan | COUNTRY
japan | COUNTRY
france | COUNTRY
Problem
I am doing certain text processing operations and finally able to get a file something like this ``` india sudan japan france ``` now I want to add a comment in the above file like in the final file it should be something like ``` india | COUNTRY sudan | COUNTRY japan | COUNTRY france | COUNTRY ``` like a same comment across the whole file. How do I do this?