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

How to replace comma with character in Unix bash

我有以下字符串:

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

当我在下面尝试时。这是行不通的。我尝试用 .done 替换 , 但它不起作用。我还需要 AAAABBBB

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

预期输出:

AAAA.done  BBBB.done

感谢您的帮助。

编辑:

根据@Ravindra 的建议,我稍微修改了一下,它工作正常,但现在的问题是 trim 空格。

-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

OS姓名:孙OS

以下简单的 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}'

编辑2:

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