【发布时间】:2017-04-02 21:15:10
【问题描述】:
为什么下面的 bash 代码不起作用?
for i in $( echo "emmbbmmaaddsb" | split -t "mm" )
do
echo "$i"
done
预期输出:
e
bb
aaddsb
【问题讨论】:
-
...嗯?这根本不是
split所做的。如,完全与其实际功能无关。 -
您想知道如何在 bash 中的任意多字符分隔符上拆分任意字符串吗?如果这是您真正想知道的,为什么不编辑您的问题来提出这个问题?
-
split将一个文件拆分为一堆较小的文件。不像您的脚本所期望的那样写入标准输出的名称,而是实际文件。-t提供了一个字符,用于确定记录的开始和结束位置,从而在记录边界上进行分割。 -
当然不是,因为您希望将名称写入标准输出。我已经告诉过你它不会将名称写入标准输出。
-
如果没有任何内容写入标准输出,则命令替换不会捕获任何内容。
标签: bash shell ubuntu gnu-coreutils