2

给定一个文件test.txtThis is a test.我想提取其内容的子字符串,更具体地说是第二个和第三个字符(hi),使用命令

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

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

我可以

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

它按预期工作。但我想在一个命令中完成。

有人可以解释这里发生了什么并提供解决方案吗?

编辑:

系统正在运行 zsh。

4

1 回答 1

0

无法准确解释那里发生了什么,但您可以sed用作替代方案:

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

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

于 2019-01-27T11:02:34.907 回答