使用sed用定界符分割字符串

我有以下格式的字符串

string1:string2:string3:string4:string5

我试图用来sed拆分字符串,:并在新行上打印每个子字符串。这是我在做什么:

cat ~/Desktop/myfile.txt | sed s/:/\\n/

打印:

string1

string2:string3:string4:string5

如何在每个定界符上拆分它?

回答:

要使用GNU sed用分隔符分割字符串,请说:

sed 's/delimiter/\n/g'     # GNU sed

例如,使用:用作分隔符进行分割:

$ sed 's/:/\n/g' <<< "he:llo:you"

he

llo

you

或使用非GNU sed:

$ sed $'s/:/\\\n/g' <<< "he:llo:you"

he

llo

you


在这种特殊情况下,您错过g了替换后的。因此,仅执行一次。看到:

$ echo "string1:string2:string3:string4:string5" | sed s/:/\\n/g

string1

string2

string3

string4

string5

g代表g小叶,表示必须在全局范围内(即任何情况下)进行替换。请注意,默认值为1,如果输入示例2,则将其设置为2次,依此类推。

总之,您需要使用:

sed 's/:/\\n/g' ~/Desktop/myfile.txt

请注意,您可以直接使用sed ... file语法,而不是不必要的管道:cat file | sed

以上是 使用sed用定界符分割字符串 的全部内容, 来源链接: utcz.com/qa/432893.html

回到顶部