如何在Unix bash中用逗号替换逗号

时间:2018-03-22 07:17:17

标签: bash shell unix aix sunos

我有以下字符串:

"BBBB,AAAA"comma分开。我需要为字符串的每个值附加.done

当我在下面尝试时。这是行不通的。我尝试将,替换为.done,但它不起作用。另外,我需要.doneAAAA

末尾的BBBB
-bash-3.2$ echo "AAAA,BBBB" |tr "," ".done" 
 AAAA.BBBB

预期产出:

AAAA.done  BBBB.done

感谢您的帮助。

编辑:

在@Ravindra Suggestion之后,我对它进行了一点修改并且工作正常,但现在的问题是修剪空间。

-bash-3.2$ echo "AAAA,BBBB ,CCC, DDD" | sed 's/,/.done /g;s/$/.done/'
 AAAA.done BBBB .done  CCC.done  DDD.done
               ^  
               getting space here

操作系统名称:SunOS

1 个答案:

答案 0 :(得分:2)

关注简单sed可能对您有所帮助。

val="AAAA,BBBB"
echo "$val" | sed 's/,/.done /;s/$/.done/'

输出如下。

AAAA.done BBBB.done

编辑:

awk -v val="$val" 'BEGIN{gsub(/,| ,/,".done ",val);sub(/$/,".done",val);print val}'

<强> EDIT2:

awk -v val="$val" 'BEGIN{gsub(/,| ,/,".done ",val);sub(/$/,".done",val);print val}'
AAA.done  BBB.done  CCC.done DDD.done