String bash中的子串替换

String bash中的子串替换,string,bash,replace,str-replace,tr,String,Bash,Replace,Str Replace,Tr,我今天的问题是用这样的字符串替换-->6427//6422 6429//6423 6428//6421 每个/带有,。我尝试了不同的命令: finalString=${startingString/[/]/,}不起作用 fileTemp=$(echo-e“$line\n”| tr”//”,“执行如下双重替换: hello//world-->hello,,world 有人想到了一种方法吗?您可以使用BASH字符串操作(需要用\/转义/): 同样,使用awk: awk -F '//' -v OF

我今天的问题是用这样的字符串替换-->
6427//6422 6429//6423 6428//6421

每个
/
带有
。我尝试了不同的命令:

  • finalString=${startingString/[/]/,}
    不起作用
  • fileTemp=$(echo-e“$line\n”| tr”//”,“
    执行如下双重替换:

    hello//world
    -->
    hello,,world


有人想到了一种方法吗?

您可以使用BASH字符串操作(需要用
\/
转义
/
):

同样,使用awk:

awk -F '//' -v OFS=, '{$1=$1}1' <<< "$s"
6427,6422 6429,6423 6428,6421
awk-F'/'-vofs=,'{$1=$1}1'您可以使用sed作为

$ echo "6427//6422 6429//6423 6428//6421" | sed 's#//#,#g'
6427,6422 6429,6423 6428,6421

您也可以像这样尝试sed命令

sed 's#/\{2,2\}#,#g'
查找双“/”并替换为“,”

范例

echo "6427//6422 6429//6423 6428//6421"| sed 's#/\{2,2\}#,#g'
结果

6427,6422 6429,6423 6428,6421
6427,6422 6429,6423 6428,6421