我有一个这样的字符串:str="test,test,test,test,test,test"
。如何删除字符str
中的第n个逗号(,),其中n
介于1
和5
之间?
任何人都可以提出任何建议吗?谢谢。
答案 0 :(得分:4)
$ echo "$str"
test,test,test,test,test,test
$ sed 's/,//5' <<<"$str" #or echo "$str" |sed 's/,//5'
test,test,test,test,testtest
答案 1 :(得分:1)
我可以试一试。
不使用除echo
和参数扩展之外的任何其他工具,您可以执行以下操作:
$ str="test,test,test,test,test,test"
$ echo ${str:0:4}${str:5}
testtest,test,test,test,test
$ echo ${str:0:9}${str:10}
test,testtest,test,test,test
$ echo ${str:0:14}${str:15}
test,test,testtest,test,test
$ echo ${str:0:19}${str:20}
test,test,test,testtest,test
$ echo ${str:0:24}${str:25}
test,test,test,test,testtest
所以,这个想法是......
echo ${variable:0:[index before the comma]}${variable:[index of the comma]}
显然,我做的不仅仅是你所说的5
,而是更多的是为了示范。此时,我会将您需要的索引作为变量并输入逗号所在的值。
答案 2 :(得分:1)
以下是awk
解决方案:
$ echo "$str" | awk -v n=3 'BEGIN{FS=OFS=","}
{for (i=1; i<=NF; i++)
printf "%s%s", $i, (i==n || i==NF) ? "" : OFS}'
test,test,testtest,test,test