Bash 在一行中的每个单词周围加引号

Bash 在一行中的每个单词周围加引号,bash,Bash,不确定这是否可行,但我有一个如下值列表: #value, #value2, #value-3 #'value', #'value2', #'value3' 有些代码中有破折号,最后一行没有逗号。我需要在每个单词周围加上单引号,如下所示: #value, #value2, #value-3 #'value', #'value2', #'value3' 我如何才能做到这一点?这应该可以做到: sed "s/^#\([^,]*\)\(.*\)/#'\1'\2/" 您可以使用sed 假设您的列

不确定这是否可行,但我有一个如下值列表:

#value,
#value2,
#value-3
#'value',
#'value2',
#'value3'
有些代码中有破折号,最后一行没有逗号。我需要在每个单词周围加上单引号,如下所示:

#value,
#value2,
#value-3
#'value',
#'value2',
#'value3'
我如何才能做到这一点?

这应该可以做到:

sed "s/^#\([^,]*\)\(.*\)/#'\1'\2/"

您可以使用
sed

假设您的列表位于
list.txt

sed "s/^#\([^,]*\)\(,\?\)$/#\'\1\'\2/" < list.txt
使用awk,您可以执行以下操作:

awk 'BEGIN{FS=OFS=","} {$1 = "#\047" substr($1, 2) "\047"} 1' file

#'value',
#'value2',
#'value-3'

@皮特,这里有一个例子。