【发布时间】:2011-12-22 00:28:14
【问题描述】:
当字符串中包含管道符号| 时如何拆分字符串。
我想将它们拆分为数组。
我试过了
echo "12:23:11" | awk '{split($0,a,":"); print a[3] a[2] a[1]}'
效果很好。如果我的字符串类似于"12|23|11",那么如何将它们拆分成一个数组?
【问题讨论】:
-
请注意,您的输出是连接数组元素,没有分隔符。如果您希望它们用
OFS分隔,请在它们之间添加逗号,使print将它们视为单独的参数。 -
或者你可以使用sed:
echo "12:23:11" | sed "s/.*://" -
@slushy:你的命令根本不是提问者需要的。您的命令(
echo "12:23:11" | sed "s/.*://")删除所有内容,直到(包括)最后一个“:”,只保留“11”......它可以获取最后一个数字,但需要修改(以一种难以阅读的方式) 来获得第二个数字,等等。awk(和 awk 的拆分)更加优雅和可读。 -
如果你需要在单个字符上分割你可以使用
cut
标签: awk