I have some words separated by commas in a file, such as below:
variable1, variable2, variable3, variable4
What's the easiest way to use BASH for adding quotation marks to each word?
The end result should look like:
"variable1", "variable2", "variable3", "variable4"
It can be done with parameter expansion
str="variable1, variable2, variable3, variable4"
str2=\""${str//, /\", \"}"\"
echo "$str2"
however to have a csv format, double quotes should be just before the comma without space, the reason of double quotes may be to allow ,
inside a field but if field already contains a comma the quoting must be done before.
Simply with sed
:
sed 's/[^[:space:],]\+/"&"/g' file
The output:
"variable1", "variable2", "variable3", "variable4"
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.