【问题标题】:Split string by delimiter and print elements on new line通过分隔符拆分字符串并在新行上打印元素
【发布时间】:2016-07-30 01:14:30
【问题描述】:

我没有在 Mac 上复制 this answer 的行为。我想在自己的行上拆分元素。有什么想法吗?

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

【问题讨论】:

  • 可能。我说不出来,因为答案太长了,普通人一辈子都读不完
  • 链接的答案并没有那么长,而且同一件事有很多替代方案。您只需要一个即可工作。
  • 也就是说不要使用sed,这样更容易。 echo '....' | tr : \\n
  • `sed 's/two/& new` 和下面的答案不一样。
  • 其他欺骗问题未解决按分隔符部分拆分的问题。

标签: regex bash macos sed


【解决方案1】:

在 OSX 上,这应该可以使用 bash:

s="string1:string2:string3:string4:string5"
echo "${s//:/$'\n'}"
string1
string2
string3
string4
string5

或者使用sed:

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

string1
string2
string3
string4
string5

或者这也应该适用于 OSX sed:

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

string1
string2
string3
string4
string5

或者使用tr:

echo "string1:string2:string3:string4:string5" | tr : '\n'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2018-05-05
    • 2011-03-29
    • 2013-10-30
    • 1970-01-01
    • 2015-02-26
    相关资源
    最近更新 更多