简体   繁体   中英

Add quotation marks to each word in a file

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM