如何使用bash命令在字符串的2个不同字符之间剪切子字符串?

我有以下字符串,我想从第一个字符串-和第一个字符串之间切出一个子字符串.

something-123_2523123_1232+12312-more-GI2342.txt

我尝试使用如下所示的cut命令:

echo something-123_2523123_1232+12312-more-GI2342.txt | cut -d'-' -f 2

上面的输出123_2523123_1232+12312是正确的一半。该cut命令已-正确选择了第一个,但随后我需要告诉它继续,直到.并输出子字符串。我该怎么做呢?

或者如何切出第一个-和之间的子字符串.

回答

您可以连续使用两个cut. 随着-f2-您可以选择在开始第二场的所有领域。

echo something-123_2523123_1232+12312-more-GI2342.txt | cut -d- -f2- | cut -d. -f1

或者,使用 bash 的内置参数扩展。

s=something-123_2523123_1232+12312-more-GI2342.txt
s=${s#*-}
s=${s%%.*}
echo "$s"

... 或sedgrep。还有很多方法可以做到这一点。


以上是如何使用bash命令在字符串的2个不同字符之间剪切子字符串?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>