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