gpt4 book ai didi

bash - 使用不同的定界符时 Bash cut 命令中的空格字符问题

转载 作者:行者123 更新时间:2023-11-29 09:49:25 26 4
gpt4 key购买 nike

我已经设置了 |成为 cut 命令的分隔符,但空格字符似乎仍被解释为分隔符。

这是我的测试脚本:

people[1]="Mr|Smith"
people[2]="Mrs|Jane Brown"

for person in ${people[@]}
do
title=$(echo $person | cut -f1 -d\|)
name=$(echo $person | cut -f2 -d\|)
echo $title $name
echo
done

哪些输出:

Mr Smith

Mrs Jane

Brown Brown

谁能阐明为什么 Jane Brown 中的空格字符会引起问题?

谢谢西蒙

最佳答案

用双引号将 ${people[@]} 括起来:

for person in "${people[@]}"
...

否则,Mrs|Jane Brown 将被解释为 2 个单独的标记:Mrs|JaneBrown

把它想象成:

for i in "a b c"; do echo $i; done # echoes "a b c" just once

对比

for i in a b c; do echo $i; done # does an echo for a, b and c

关于bash - 使用不同的定界符时 Bash cut 命令中的空格字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6267504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com