如何从管道的输出中回显子字符串?

Mic*_*ays 3 bash pipe string

在这里找到了如何在 bash 中提取子字符串,但我不知道如何在管道之后应用它。例如:

some func | echo ${string:12:5}
Run Code Online (Sandbox Code Playgroud)

如何将 的输出分配some func给变量string

Isk*_*tvo 5

回答

\n\n

如果您只想从 中提取输出some_func,则无需将其存储在变量中,只需将输出发送到cut该变量即可提取请求的字符:

\n\n
some_func | cut -c 12-16  \n
Run Code Online (Sandbox Code Playgroud)\n\n

解释

\n\n

cutstdin将根据指定的选项 提取并提取请求的范围。

\n\n

-c表示范围以字符指定。

\n\n

12-16字符以 index 开头的范围1,而不是以0.
\n因此,这将获取位置12131415处的字符16

\n\n

正如St\xc3\xa9phane Chazelas留给我的那样,请注意,这适用于每一行输入,而不仅仅是第一行。

\n