我有以下格式的字符串:
string1:string2:string3:string4:string5
我试图用来sed拆分字符串,:并在新行上打印每个子字符串。这是我在做什么:
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了替换后的。因此,仅执行一次。看到:
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 ... file
cat file | sed