当字符串中包含管道符号|时,如何拆分字符串。 我想把它们分割成数组。

我试着

echo "12:23:11" | awk '{split($0,a,":"); print a[3] a[2] a[1]}'

这很好。如果我的字符串是像“12|23|11”,那么我如何把它们分割成一个数组?


当前回答

echo "12|23|11" | awk '{split($0,a,"|"); print a[3] a[2] a[1]}'

其他回答

笑话?:)

如何回应“12 | | 23日11”| awk的{分裂(0美元,“|”);打印一个[3]a[2] a[1]}'

这是我的输出:

p2> echo "12|23|11" | awk '{split($0,a,"|"); print a[3] a[2] a[1]}'
112312

所以我想它还是有用的。

echo "12|23|11" | awk '{split($0,a,"|"); print a[3] a[2] a[1]}'

应该工作。

我知道这是个老问题,但我想也许有人喜欢我的把戏。特别是因为这个解决方案不局限于特定数量的项目。

# Convert to an array
_ITEMS=($(echo "12|23|11" | tr '|' '\n'))

# Output array items
for _ITEM in "${_ITEMS[@]}"; do
  echo "Item: ${_ITEM}"
done

输出将是:

Item: 12
Item: 23
Item: 11
awk -F'['|'] -v '{print $1"\t"$2"\t"$3}' file <<<'12|23|11'

你有没有试过:

echo "12|23|11" | awk '{split($0,a,"|"); print a[3],a[2],a[1]}'