使用sed用定界符分割字符串
我有以下格式的字符串:
string1:string2:string3:string4:string5
我试图用来sed
拆分字符串,:
并在新行上打印每个子字符串。这是我在做什么:
cat ~/Desktop/myfile.txt | sed s/:/\\n/
打印:
string1string2: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/gstring1
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