为什么子字符串提取会提取整个单词而不是字符?

时间:2019-01-27 10:45:23

标签: string substring zsh parameter-expansion

给出一个文件test.txt,内容为This is a test.,我想使用以下命令提取其内容的子字符串,更确切地说是第二个和第三个字符(hi

echo ${$(cat test.txt):1:2}

但是,这将输出第二个和第三个单词(is a),而不是单个字符。

我能做

a=$(cat test.txt)
echo ${a:1:2}

它按预期工作。但是我想用一个命令来做。

有人可以解释这里发生的事情并提供解决方案吗?

编辑:

系统正在运行zsh。

1 个答案:

答案 0 :(得分:0)

无法确切解释那里发生了什么,但是您可以使用sed作为替代:

sed -E 's/.(..).*/\1/' test.txt

仅用第二个和第三个字符替换每一行。